LoginSignup
0
0

MacのDocker Desktopを利用して6443ポートがコンフリクトしてしまう場合の対応法

Last updated at Posted at 2023-09-22

環境前提

MacのDocker Desktopを使っている前提です。
なお、自身のMAC OSのバージョンは12.6.9、Docker Desktopのバージョンは4.6.1です。

概要

dockerを起動しようとしたところ下記のエラーが表示されました。
これはdockerコンテナ上の通信のために親ホスト側で6443ポートを利用しようとしていて、稼働中の親ホスト環境でも6443ポートを利用しているのでポート番号が競合してしまってるのでエラーが出力されています。

ERROR: for testcontainer  Cannot start service yyyyy: driver failed programming external connectivity on endpoint testcontainer(7e3987bc0b4f9f82af72b1669587a7f3e080df33e6af810729bc92fac51d8273): listen tcp4 0.0.0.0:6443: bind: address already in use

下記コマンドにてプロセスを特定したところDocker Desktopで6443ポートが使われていました。
6443というポート番号は複数のコンテナ上で稼働させていると、TLSの「443」ポートつながりで親ホストからも設定される可能性があります。

$ sudo lsof -i :6443
COMMAND    PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke 8172  azarashi  168u  IPv4 0x264940a1a6d323cd      0t0  TCP localhost:sun-sr-https (LISTEN)
$ pstree

対応方針としては以下の2つです。今回は(2)の方針で進めます。

  • (1) アプリケーション側で6443を利用しない様にする。
  • (2) Kubernetes機能を使っていないのならば、6443ポートで起動する機能を停止する。

Docker DesktopのPreferencesを開いて、左側の「Kubernetes」タブを開く事で下記画面が表示されます。
今回は「Kubernetes」を利用していなかったので、「Enable Kubernetes」のチェックを外して「Apply&Restart」を実行しました。
スクリーンショット 2023-09-22 9.15.17.png

しかし、その後も6443ポートのプロセスは消えることがなかったので、しばらくハマりましたが、MAC OS自体をその後OS再起動することで6443ポートを利用するプロセスが起動しなくなりました。
「Apply&Restart」だけでは6443ポートのプロセスを削除まで行ってくれないみたいなので注意が必要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0