如何在不使用 docker 机器命令的情况下在 docker 中创建覆盖网络
How can I make an overlay network in docker without using docker-machine commands
Docker 文档解释了如何使用命令
制作覆盖网络
eval $(docker-machine -swarm master)
docker network create -d overlay test-overlay
问题是我没有使用 docker-machine 来设置我的集群。当我尝试创建覆盖网络时出现错误。
在我的 swarm master 上执行的命令(监听端口 4000)
docker -H :4000 network create -d overlay test-overlay
执行命令时出现异常
Error response from daemon: 500 Internal Server Error: failed to parse pool request for address space "GlobalDefault" pool "" subpool "": cannot find address space GlobalDefault (most likely the backing datastore is not configured)
如错误所述,您需要一个后备数据存储。
- 您至少需要设置一个键值存储,例如
consul
或etcd
。
- 如果使用
consul
,您需要 运行 您的 docker 守护程序与 --cluster-store consul://<your consul ip>:8500 --cluster-advertise eth0:4000
。我假设您使用 eth0
作为 docker 守护程序的网络接口。
Docker 文档解释了如何使用命令
制作覆盖网络eval $(docker-machine -swarm master)
docker network create -d overlay test-overlay
问题是我没有使用 docker-machine 来设置我的集群。当我尝试创建覆盖网络时出现错误。
在我的 swarm master 上执行的命令(监听端口 4000)
docker -H :4000 network create -d overlay test-overlay
执行命令时出现异常
Error response from daemon: 500 Internal Server Error: failed to parse pool request for address space "GlobalDefault" pool "" subpool "": cannot find address space GlobalDefault (most likely the backing datastore is not configured)
如错误所述,您需要一个后备数据存储。
- 您至少需要设置一个键值存储,例如
consul
或etcd
。 - 如果使用
consul
,您需要 运行 您的 docker 守护程序与--cluster-store consul://<your consul ip>:8500 --cluster-advertise eth0:4000
。我假设您使用eth0
作为 docker 守护程序的网络接口。