簡易Webサーバ立ち上げ

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
$

無事返ってきました。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS