【Ubuntu】DockerでTCP通信を有効にする方法

  • 2021年4月12日
  • 2021年4月12日
  • Linux

UbuntuでDocker(docker.ioパッケージ)をインストールすると、デフォルト状態ではUNIXソケットでのみ通信するように設定されています。

しかし、PhpStormをはじめとするIDEと連携させる際、TCP経由でDockerデーモンをコントロールしたくなることがあります。

UbuntuではDockerデーモンを、OS標準のデーモン管理システムであるSystemdを使用して起動させているため、SystemdのDockerデーモンの定義ファイルを編集することで、Dockerデーモンの設定を変更することが可能です。

Ubuntuの場合、DockerデーモンのSystemd用の定義ファイル(サービス設定ファイル)は下記のパスにあります。

/usr/lib/systemd/system/docker.service

上記のファイルを管理者権限で開き、下記のように編集します。

編集前:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

編集後:
(オプション -H tcp://127.0.0.1:2375 を追加)

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375 --containerd=/run/containerd/contain    erd.sock

なお、127.0.0.1の部分を変更すれば、外部ネットワーク越しにDockerのコントロールポートを開放することも可能ですが、アクセス制御が適切になされていないとDockerそのものが乗っ取られる可能性があり、非常に危険なため、通常はlocalhostに対してのみ許可することをお勧めします。

設定の変更が完了したら、下記コマンドでDockerデーモンを再起動します。

sudo systemctl daemon-reload // 設定再読み込み
sudo systemctl restart docker // dockerデーモン再起動

これでDockerがTCPポートとUNIXソケット双方で待ち受けるようになります。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG