「ブログズミ: [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 件のコメント:
コメントを投稿