「ブログズミ: [Docker] 始めてみたけど躓きまくってるので備忘録として残しておくよ」
上記記事から、一ヶ月くらい経って、docker-compose も使うようになってきました。
Docker はもとより、ネットワークとかの知識がほとんどない素人ですが、多少覚えてきました。
それにしても、docker-compose 便利ですね!
環境変数とか設定を Dockerfile から追い出せるし、--build-arg も docker-compose.yml に書けるし、
Docker ホストが起動したときに自動起動したい場合も、"restart: always" を書いとけば OK ですし、
「ブログズミ: [Windows][Docker] Host および コンテナの起動をスタートアップに登録」とか、
いらんかったわ!って感じです。
でもハマった
まぁ、でもハマりますよね。今回ハマったのはネットワーク絡み。
Dockerfile からビルドして docker run したコンテナからは通じるのに、
それを docker-compose で run すると通じない…
そんなことがありました。
docker-compose が作成する network
docker-compose run すると、{サービス名}_default という名前で network が作成されます。$ docker-compose up -d Creating network "hoge_hoge_default" with the default driver
こんな感じでログが出ていると思います。
Docker 管理下のネットワークは docker network ls で確認できます。
$ docker network ls a8c84238aaaa bridge bridge local f9b622381b6a host host local 7061554ce0f1 hoge_hoge_default bridge local f1c24d1dda82 none null local
さらに、詳細を docker network inspect {ネットワーク名} で確認できます。
$ docker network inspect hoge_hoge_default
[
{
"Name": "hubot2_bridge",
"Id": "1d3906e507b39eb08cf6d7326058eb62c447772371c4d2b692765c25778a4d11",
"Created": "2017-05-23T11:41:13.819782229Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1/16"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"72917816824f2d5fe76ba854a49766787fd1bb54928fd903d251fc9dfa5a2f69": {
"Name": "hoge_hoge_1",
"EndpointID": "219cb4cbd809b4d3d7e5f4d1118abe87fe5e4d44222ace5e6022119366827d60",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
で、これが目的のネットワークと衝突してて通じてなかったようです。
解決方法
docker-compose.yml にネットワークの設定を書き足します。参考:https://github.com/docker/compose/issues/2582
services:
hoge:
networks:
- bridge
networks:
bridge:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.16.238.0/24
gateway: 172.16.238.1
これで、network の subnet/gateway を指定できるので、都合の良い設定すれば解決するはずです。
また、1つ docker のことがわかった気がします。
今回は以上です。では。
0 件のコメント:
コメントを投稿