*** 簡易Webサーバ立ち上げ [#lddea4b0] 8080で立ち上げてます。 # docker run -it ubuntu:14.04 \ /bin/bash -c 'trap exit INT; while true; do ( echo "HTTP/1.0 200 Ok"; echo; echo "Hello World" ) | \ nc -l 8080; done' WEBサーバがポート8080で起動しました。 このターミナルはプロンプトは返ってこないので、Dockerサーバにログインした別のターミナルから、コンテナのIPを確認し、繋いでみます。 # docker ps CONTAINER ID IMAGE COMMAND ec9fcb1b8dee ubuntu:14.04 "/bin/bash -c 'trap e" About a minute ago Up About a minute # docker exec -it ec9fcb1b8dee cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback 172.17.0.8 ec9fcb1b8dee というわけで繋いでみます root@photon-machine [ ~ ]# curl 172.17.0.8:8080 Hello World root@photon-machine [ ~ ]# つながりました。ただこのコンテナは -p オプションで起動していないので、Dockerサーバからは繋がりますが、Dockerをホストしてるのではない、他のサーバからは繋がりません。 $ curl http://[DockerサーバのIP]:8080 これは返りません。 さて、初めのコンテナを、-p つきで起動してみます。 # docker run -it \ -p 38080:8080 \ ubuntu:14.04 \ /bin/bash -c 'trap exit INT; while true; do ( echo "HTTP/1.0 200 Ok"; echo; echo "Hello World" ) | \ nc -l 8080; done' 別のターミナルから先ほどとおなじ手順で。 # docker ps CONTAINER ID IMAGE COMMAND PORTS 88938a296bee ubuntu:14.04 "/bin/bash -c 'trap e" 0.0.0.0:38080->8080/tcp # docker exec -it 88938a296bee cat /etc/hosts 172.17.0.8 88938a296bee root@photon-machine [ ~ ]# curl 172.17.0.8:8080 Hello World root@photon-machine [ ~ ]# 他のサーバからは、 $ curl http://[DockerサーバのIP]:38080 Hello World $ 無事返ってきました。