Docker DesktopでCompose V2を無効にする
背景
Docker Desktopを3.4.0にバージョンアップ後、コンテナ間で通信ができなくなったので調査。
docker network で独自のnetworkを作成し、
docker network create \
--driver=bridge \
--subnet=10.100.0.0/12 \
--gateway=10.100.0.1 \
hogenetwork
docker-compose.ymlには以下のように記述して固定IPを付与している。
services:
app:
image: hogeimage:latest
hostname: hoge
networks:
hogenetwork:
ipv4_address: 10.100.6.11
普段はこれで10.100.6.11のIPアドレスでコンテナが動くのだが、なぜか
コンテナのIPが10.96.0.1になっていた。
$ docker exec -it hoge bash
bash-4.2# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd ::
54: eth0@if55: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:0a:60:00:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.96.0.1/12 brd 10.111.255.255 scope global eth0
valid_lft forever preferred_lft forever
bash-4.2#
原因
Docker Desktop 3.4.0がリリースされ、Compose V2 betaが使えるようになった。
$ docker-compose --version
Docker Compose version 2.0.0-beta.3
ところが、Compose V2 で起動すると、defaultのネットワークが勝手に作成され、そのネットワークのIPが割り当てられてしまう様子。
$ docker-compose up -d
...
Network hoge_default Creating
Network hoge_default Created
...
対応
Compose V2の書式に対応すれば治りそうだが、まだbeta版なので今は対応しないことにした。
V2を無効にするコマンドがあったので、それで対応。
$ docker-compose disable-v2
参考
Author And Source
この問題について(Docker DesktopでCompose V2を無効にする), 我々は、より多くの情報をここで見つけました https://qiita.com/yKanazawa/items/9ef018ec63a62d69acda著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .