*** 簡易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
 $

無事返ってきました。


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