浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

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

docker

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ソケット双方で待ち受けるようになります。

  • この記事いいね! (0)