私はCoreOSのネットワーキングモデルを理解しようとしていますが、オペレーティングシステムが私の思い通りに曲がるようにすることはできません。
私が直面する問題は、サービスごとに一意のIP +ポートタプルを容易にするためにコンテナ内のオーバーレイネットワークとしてweaveを使用したいということです。
ただし、vagrantとvirtualboxを使用してラップトップでCoreOSをテストするときは、Dockerデーモンが10.1.0.0/16以外のcidrを使用する必要があることをCoreOSで許可することはできません。すでに完了しているにもかかわらず:
cp /usr/lib/systemd/system/docker.service /etc/systemd/system/
vim /etc/systemd/system/docker.service
次の項目に含めてくださいuser-data
。
3 units:
2 - name: docker.service
1 command: restart
0 content: |
1 [Unit]
2 Description=Docker Application Container Engine
3 Documentation=http://docs.docker.com
4 After=docker.socket early-docker.target network.target
5 Requires=docker.socket early-docker.target
6
7 [Service]
8 Environment=TMPDIR=/var/tmp
9 EnvironmentFile=-/run/flannel_docker_opts.env
10 MountFlags=slave
11 LimitNOFILE=1048576
12 LimitNPROC=1048576
13 ExecStart=/usr/lib/coreos/dockerd --daemon --host=fd:// --icc=false --fixed-cidr=172.17.42.0/16 $DOCKER_OPTS $ DOCKER_OPT_BIP $DOCKER_OPT_MTU $DOCKER_OPT_IPMASQ
14
15 [Install]
16 WantedBy=multi-user.target
17
マシンを再起動してdockerを再起動しましたが、次のメッセージが表示されて起動できませんでした。
● docker.service - Docker Application Container Engine
Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Fri 2015-03-06 08:53:40 UTC; 13s ago
Docs: http://docs.docker.com
Process: 2331 ExecStart=/usr/lib/coreos/dockerd --daemon --host=fd:// --bridge=docker0 --icc=false --fixed-cidr=172.17.42.0/16 $DOCKER_OPTS $DOCKER_OPT_BIP $DOCKER_OPT_MTU $DOCKER_OPT_IPMASQ (code=exited, status=1/FAILURE)
Main PID: 2331 (code=exited, status=1/FAILURE)
Mar 06 08:53:40 core-01 dockerd[2331]: network does not contain specified subnet
Mar 06 08:53:40 core-01 dockerd[2331]: time="2015-03-06T08:53:40Z" level="info" msg="-job init_networkdriver() = ERR (1)"
Mar 06 08:53:40 core-01 dockerd[2331]: time="2015-03-06T08:53:40Z" level="fatal" msg="network does not contain specified subnet"
Mar 06 08:53:40 core-01 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Mar 06 08:53:40 core-01 systemd[1]: Unit docker.service entered failed state.
Mar 06 08:53:40 core-01 systemd[1]: docker.service failed.
Mar 06 08:53:40 core-01 systemd[1]: Starting Docker Application Container Engine...
Mar 06 08:53:40 core-01 systemd[1]: start request repeated too quickly for docker.service
Mar 06 08:53:40 core-01 systemd[1]: Failed to start Docker Application Container Engine.
Mar 06 08:53:40 core-01 systemd[1]: docker.service failed.
なぜこれですか?
これはdocker0インターフェースです:
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff
inet 172.17.42.1/16 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::5484:7aff:fefe:9799/64 scope link
valid_lft forever preferred_lft forever
答え1
固定CIDRではなく一時的な構成設定を探しています--bip=172.17.42.1/16
。
また、ブリッジインターフェイスを手動で削除する必要があります。
ip link set dev docker0 down
core-01 system # brctl delbr docker0
core-01 system # systemctl daemon-reload
core-01 system # systemctl start docker
core-01 system # journalctl -fu docker.service