Docker/EXPOSEまわり
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
Dockerfile の記述に出てくる EXPOSE 8080 とか、docker run ...
***サーバ起動 [#p19968e7]
まず、通信の送受信確認のための簡易的なWebサーバを 8080で...
root@photon-machine [ ~ ]# docker run -it \
ubuntu:14.04 \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
WEBサーバがポート8080で起動しました。ちなみにこの呪文みた...
[[nc コマンドで簡易HTTPサーバ - sonots:blog>http://blog.l...
さて、このターミナルはリクエスト待ちでプロンプトは返って...
root@photon-machine [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND ...
ec9fcb1b8dee ubuntu:14.04 "/bin/bash -c 'trap...
root@photon-machine [ ~ ]# docker exec -it ec9fcb1b8dee ...
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 オプションで起動し...
別のサーバから、
$ curl http://[DockerサーバのIP]:8080
これは返りません。
*** -p で起動する [#j81aa647]
さて、初めのコンテナを、-p つきで起動してみます。
root@photon-machine [ ~ ]# docker run -it \
-p 38080:8080 \
ubuntu:14.04 \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
別のターミナルから先ほどとおなじ手順で。
# docker ps
CONTAINER ID IMAGE COMMAND ...
88938a296bee ubuntu:14.04 "/bin/bash -c 't...
root@photon-machine [ ~ ]# docker exec -it 88938a296bee ...
172.17.0.8 88938a296bee
root@photon-machine [ ~ ]# curl 172.17.0.8:8080
Hello World
root@photon-machine [ ~ ]#
繋がりました。ここまでは先ほどとおなじですが、今回は -p ...
$ curl http://[DockerサーバのIP]:38080
Hello World
$
無事返ってきました。
*** EXPOSEの件 [#t6237188]
次にDockerfileで EXPOSEを指定したコンテナを作ってまたサー...
root@photon-machine [ ~ ]# cat Dockerfile
FROM ubuntu:14.04
EXPOSE 8080
root@photon-machine [ ~ ]# docker build -t my-server .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:14.04
---> 8cef1fa16c77
Step 2 : EXPOSE 8080
---> Running in e79aa6f343b7
---> c68bd1ecb1ca
Removing intermediate container e79aa6f343b7
Successfully built c68bd1ecb1ca
#
root@photon-machine [ ~ ]# docker run -it \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTTP...
nc -l 8080; done'
別ターミナルから見てみます
root@photon-machine [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND ...
3d64f7d8d425 my-server "/bin/bash -c 't...
PORTSになんか出てますが、Port Forwardingしてるわけじゃな...
*** -P で起動する [#l6c2f2c3]
さて、つぎにサーバを -P オプションつきでてちあげます。
# docker run -it \
-P \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
別ターミナルからみてみます
# docker ps
CONTAINER ID IMAGE COMMAND ...
4f26410059bb my-server "/bin/bash -c 'trap ...
Port Forwarding が勝手に設定されました。EXPOSEは -P オプ...
$ curl http://[DockerサーバのIP]:32775
Hello World
$
つながりました。。
*** --linkのはなし。 [#k9dfe0b9]
次に --linkのはなしです。
まずサーバを起動します。
root@photon-machine [ ~ ]# docker run -it \
--name my-server \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
次にこのWEBサーバと通信するコンテナを立ち上げます。
root@photon-machine [ ~ ]# docker run -it --link my-serv...
[root@f7ba50802906 /]# curl s1:8080
Hello World
--linkによって、my-server1は s1というサーバ名で名前解決...
*** link先のコンテナの環境変数 [#d645728f]
サーバを立ち上げます。
root@photon-machine [ ~ ]# docker run -it \
--name my-server \
-e userid=u0001 \
-e password=p0001 \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
つぎにそのサーバとlinkしたコンテナを立ち上げます。
root@photon-machine [ ~ ]# docker run -it --link my-serv...
[root@a89078de181d /]# echo $S1_ENV_userid
u0001
[root@a89078de181d /]# echo $S1_ENV_password
p0001
[root@a89078de181d /]# cat /etc/hosts
172.17.0.8 s1 09d11a2a5e28 my-server
172.17.0.9 a89078de181d
[root@a89078de181d /]# env | grep S1
S1_ENV_userid=u0001
S1_PORT_8080_TCP=tcp://172.17.0.8:8080
S1_NAME=/my-client/s1
S1_ENV_password=p0001
S1_PORT_8080_TCP_ADDR=172.17.0.8
S1_PORT_8080_TCP_PORT=8080
S1_PORT_8080_TCP_PROTO=tcp
S1_PORT=tcp://172.17.0.8:8080
これらで
-エイリアス名(S1)_ENV_[s1の環境変数名] で、link先の環境変...
-hostsにはs1で名前解決できるようIPが定義されています。
-またEXPOSEされているポート番号はいろいろと環境変数が定義...
という事が分かりました。
よくmysqlコンテナを立ち上げた際にID/PASSを環境変数に渡し...
***関連リンク [#j5229ff5]
-[[Docker の基本学習 ~ コンテナ間のリンク - Qiita>https:/...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
Dockerfile の記述に出てくる EXPOSE 8080 とか、docker run ...
***サーバ起動 [#p19968e7]
まず、通信の送受信確認のための簡易的なWebサーバを 8080で...
root@photon-machine [ ~ ]# docker run -it \
ubuntu:14.04 \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
WEBサーバがポート8080で起動しました。ちなみにこの呪文みた...
[[nc コマンドで簡易HTTPサーバ - sonots:blog>http://blog.l...
さて、このターミナルはリクエスト待ちでプロンプトは返って...
root@photon-machine [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND ...
ec9fcb1b8dee ubuntu:14.04 "/bin/bash -c 'trap...
root@photon-machine [ ~ ]# docker exec -it ec9fcb1b8dee ...
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 オプションで起動し...
別のサーバから、
$ curl http://[DockerサーバのIP]:8080
これは返りません。
*** -p で起動する [#j81aa647]
さて、初めのコンテナを、-p つきで起動してみます。
root@photon-machine [ ~ ]# docker run -it \
-p 38080:8080 \
ubuntu:14.04 \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
別のターミナルから先ほどとおなじ手順で。
# docker ps
CONTAINER ID IMAGE COMMAND ...
88938a296bee ubuntu:14.04 "/bin/bash -c 't...
root@photon-machine [ ~ ]# docker exec -it 88938a296bee ...
172.17.0.8 88938a296bee
root@photon-machine [ ~ ]# curl 172.17.0.8:8080
Hello World
root@photon-machine [ ~ ]#
繋がりました。ここまでは先ほどとおなじですが、今回は -p ...
$ curl http://[DockerサーバのIP]:38080
Hello World
$
無事返ってきました。
*** EXPOSEの件 [#t6237188]
次にDockerfileで EXPOSEを指定したコンテナを作ってまたサー...
root@photon-machine [ ~ ]# cat Dockerfile
FROM ubuntu:14.04
EXPOSE 8080
root@photon-machine [ ~ ]# docker build -t my-server .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:14.04
---> 8cef1fa16c77
Step 2 : EXPOSE 8080
---> Running in e79aa6f343b7
---> c68bd1ecb1ca
Removing intermediate container e79aa6f343b7
Successfully built c68bd1ecb1ca
#
root@photon-machine [ ~ ]# docker run -it \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTTP...
nc -l 8080; done'
別ターミナルから見てみます
root@photon-machine [ ~ ]# docker ps
CONTAINER ID IMAGE COMMAND ...
3d64f7d8d425 my-server "/bin/bash -c 't...
PORTSになんか出てますが、Port Forwardingしてるわけじゃな...
*** -P で起動する [#l6c2f2c3]
さて、つぎにサーバを -P オプションつきでてちあげます。
# docker run -it \
-P \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
別ターミナルからみてみます
# docker ps
CONTAINER ID IMAGE COMMAND ...
4f26410059bb my-server "/bin/bash -c 'trap ...
Port Forwarding が勝手に設定されました。EXPOSEは -P オプ...
$ curl http://[DockerサーバのIP]:32775
Hello World
$
つながりました。。
*** --linkのはなし。 [#k9dfe0b9]
次に --linkのはなしです。
まずサーバを起動します。
root@photon-machine [ ~ ]# docker run -it \
--name my-server \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
次にこのWEBサーバと通信するコンテナを立ち上げます。
root@photon-machine [ ~ ]# docker run -it --link my-serv...
[root@f7ba50802906 /]# curl s1:8080
Hello World
--linkによって、my-server1は s1というサーバ名で名前解決...
*** link先のコンテナの環境変数 [#d645728f]
サーバを立ち上げます。
root@photon-machine [ ~ ]# docker run -it \
--name my-server \
-e userid=u0001 \
-e password=p0001 \
my-server \
/bin/bash -c 'trap exit INT; while true; do ( echo "HTT...
nc -l 8080; done'
つぎにそのサーバとlinkしたコンテナを立ち上げます。
root@photon-machine [ ~ ]# docker run -it --link my-serv...
[root@a89078de181d /]# echo $S1_ENV_userid
u0001
[root@a89078de181d /]# echo $S1_ENV_password
p0001
[root@a89078de181d /]# cat /etc/hosts
172.17.0.8 s1 09d11a2a5e28 my-server
172.17.0.9 a89078de181d
[root@a89078de181d /]# env | grep S1
S1_ENV_userid=u0001
S1_PORT_8080_TCP=tcp://172.17.0.8:8080
S1_NAME=/my-client/s1
S1_ENV_password=p0001
S1_PORT_8080_TCP_ADDR=172.17.0.8
S1_PORT_8080_TCP_PORT=8080
S1_PORT_8080_TCP_PROTO=tcp
S1_PORT=tcp://172.17.0.8:8080
これらで
-エイリアス名(S1)_ENV_[s1の環境変数名] で、link先の環境変...
-hostsにはs1で名前解決できるようIPが定義されています。
-またEXPOSEされているポート番号はいろいろと環境変数が定義...
という事が分かりました。
よくmysqlコンテナを立ち上げた際にID/PASSを環境変数に渡し...
***関連リンク [#j5229ff5]
-[[Docker の基本学習 ~ コンテナ間のリンク - Qiita>https:/...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: