- 追加された行はこの色です。
- 削除された行はこの色です。
*** 簡易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
$
無事返ってきました。