Dockerのコンテナ外部から内部への接続

Pocket

外部からコンテナ内部への接続について覚書です。

https://docs.docker.jp/engine/userguide/networking/default_network/binding.html
とてもわかり易いドキュメントです。

コンテナが外部からの内部への接続を受け付けたいなら docker runのpまたは--publishオプション(Docker Composeのportsプロパティ)で指定します。
DockerがiptablesにDNATを追加します。

Nginxコンテナをrunするときにpオプションで8000を指定する例です(コンテナは172.17.0.2で稼働していると仮定します)。

$ docker run -d --name web -p 8000:80 nginx:latest
$ iptables -t nat -L -n
.....
Chain DOCKER-INGRESS (2 references)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8000 to:172.17.0.2:80
.....

任意の場所(0.0.0.0)からのポート8000でのアクセスを172.17.0.2のポート80に接続します。

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。