
ホスト (Ubuntu)、Docker コンテナ (centOS)、仮想マシン (centOS) があります。
- ホストには 2 つのインターフェイスがあり、1 つは eth0 "192.168.0.4"、もう 1 つは docker0 "172.17.42.1" です
。 - docker コンテナの IP は "172.17.0.1" です。ポート 80 にサービス バインドがあります。
- 仮想マシンでは、docker0 でブリッジ アダプタを使用し、"/etc/sysconfig/network-scripts/ifcfg-eth0" ファイルを次のように構成します。
DEVICE="eth0"
ONBOOT=yes
HWADDR=08:00:27:72:40:6B
TYPE=Ethernet
BOOTPROTO=static
IPADDR=172.17.0.250
NETMASK=255.255.0.0
ホストからコンテナのサービスにtelnet接続する
$ telnet 172.17.0.1 80
Trying 172.17.0.1...
Connected to 172.17.0.1.
Escape character is '^]'.
大丈夫ですよ!
しかし、仮想マシンからはtelnetできません
$ telnet 172.17.0.1 80
Trying 172.17.0.1...
telnet: Unable to connect to remote host: Connection timed out
仮想マシンからDockerコンテナにpingを送信できます
$ ping 172.17.0.1
PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data.
64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.091 ms
では、Docker コンテナ上のサービスに Telnet するにはどうすればよいでしょうか?