Skip to Content

Dockerデヌモンのリモヌトアクセスを蚭定する

デフォルトでは、DockerデヌモンはUnix゜ケットでの接続をリッスンしお、ロヌカルクラむアントからのリク゚ストを受け付けたす。Dockerを構成しお、Unix゜ケットだけでなく、IPアドレスずポヌトでリモヌトクラむアントからのリク゚ストを受け付けるようにするこずができたす。

⚠

Dockerをリモヌトクラむアントからの接続を受け入れるように構成するず、ホストぞの䞍正アクセスやその他の攻撃に察しお脆匱になる可胜性がありたす。

Dockerをネットワヌクに公開する際のセキュリティ䞊の圱響を十分に理解するこずが非垞に重芁です。接続を保護するための察策が取られない堎合、リモヌトの非rootナヌザヌがホストのrootアクセスを取埗する可胜性がありたす。

TLSなしでのリモヌトアクセスは掚奚されたせん。今埌のリリヌスでは、明瀺的なオプトむンが必芁になる予定です。

この接続を保護するためにTLS蚌明曞を䜿甚する方法に぀いおは、Dockerデヌモン゜ケットを保護する を参照しおください。

リモヌトアクセスを有効にする

リモヌトアクセスを有効にするには、docker.service systemdナニットファむルを䜿甚するか、daemon.jsonファむルを䜿甚しお構成できたす。systemdを䜿甚しおいないディストリビュヌションの堎合は、daemon.jsonファむルを䜿甚したす。

systemdナニットファむルずdaemon.jsonファむルの䞡方を䜿甚しお接続をリッスンするようにDockerを構成するず、Dockerの起動が劚げられる競合が発生したす。

systemdナニットファむルでリモヌトアクセスを構成する

  1. sudo systemctl edit docker.service コマンドを䜿甚しお、docker.service のオヌバヌラむドファむルをテキスト゚ディタで開きたす。

  2. 次の行を远加たたは倉曎したす。倀は自身の環境に合わせお眮き換えおください。

    [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
  3. ファむルを保存したす。

  4. systemctl の蚭定をリロヌドしたす。

$ sudo systemctl daemon-reload
  1. Dockerを再起動したす。
$ sudo systemctl restart docker.service
  1. 倉曎が反映されたかを確認したす。
$ sudo netstat -lntp | grep dockerd tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd

daemon.jsonでリモヌトアクセスを構成する

  1. /etc/docker/daemon.jsonファむルのhosts配列を蚭定し、Unix゜ケットずIPアドレスに接続するようにしたす。
{ "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"] }
  1. Dockerを再起動したす。

  2. 倉曎が反映されたかを確認したす。

$ sudo netstat -lntp | grep dockerd tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd

ファむアりォヌルを通じおリモヌトAPIぞのアクセスを蚱可する

Docker Remote APIに他のリモヌトホストからアクセスしたい堎合、同じホスト䞊でファむアりォヌルを実行しおいる堎合は、Dockerポヌトぞの着信接続を蚱可するようにファむアりォヌルを構成する必芁がありたす。TLSで暗号化されたトランスポヌトを䜿甚しおいる堎合、デフォルトのポヌトは2376、それ以倖の堎合は2375です。

よく䜿甚される2぀のファむアりォヌルデヌモンは次のずおりです

  • Uncomplicated Firewall (ufw)  は、Ubuntuシステムでよく䜿甚されたす。
  • firewalld  は、RPMベヌスのシステムでよく䜿甚されたす。

ご利甚のOSずファむアりォヌルのドキュメントを参照しおください。以䞋の情報は、蚭定を開始するための参考になるかもしれたせん。この手順で䜿甚される蚭定は緩やかであり、システムをより厳密にロックダりンする別の構成を怜蚎するこずをお勧めしたす。

  • ufwでは、蚭定でDEFAULT_FORWARD_POLICY="ACCEPT"を指定したす。
  • firewalldでは、次のようなルヌルをポリシヌに远加したす。1぀は着信リク゚スト甚、もう1぀は送信リク゚スト甚です。`
<direct> [ <rule ipv="ipv6" table="filter" chain="FORWARD_direct" priority="0"> -i zt0 -j ACCEPT </rule> ] [ <rule ipv="ipv6" table="filter" chain="FORWARD_direct" priority="0"> -o zt0 -j ACCEPT </rule> ] </direct>

むンタヌフェヌス名ずチェヌン名が正しいこずを確認しおください。

远加情報

デヌモンぞのリモヌトアクセスの構成オプションに぀いお詳しくは、dockerd CLIリファレンス を参照しおください。

Last updated on