这是this answer的延续,涉及多个docker守护进程。
他们使用以下脚本创建第二个docker deamon:
#!/bin/sh
## name: altdocker.sh
set -e -x
: ${bridge=altdocker}
: ${base=$HOME/$bridge}
# Set up bridge network:
if ! ip link show $bridge > /dev/null 2>&1
then
sudo ip link add name $bridge type bridge
sudo ip addr add ${net:-"10.20.30.1/24"} dev $bridge
sudo ip link set dev $bridge up
fi
sudo dockerd \
--bridge=$bridge \
--data-root=$base.data \
--exec-root=$base.exec \
--host=unix://$base.socket \
--pidfile=$base.pid
现在,我将DOCKER_HOST
设置为创建的unix
套接字。我用docker swarm init
初始化docker swarm完全没有问题。但是,一旦我用docker stack deploy -c myfile.yaml
创建了堆栈,就必须解决以下问题:
更新
再深入一点,我在the documentation中看到了为了使用群体模式而应启用的配置:
我意识到是因为我看到了dockerd
给出的错误消息:
ERRO[2019-05-21T14:46:02.807800662+02:00] error in agentInit: failed to create memberlist: Could not set up network transport: failed to obtain an address: Failed to start TCP listener on "0.0.0.0" port 7946: listen tcp 0.0.0.0:7946: bind: address already in use
是否可以更改这些端口? (因为这可能是原因)