如何在 Hyper-V 上设置运行 Docker 1.12 的多主机?
我可以轻松分配一个 127.x.x.x ip,但我想分配例如10.240.0.x.
这是我的 docker-compose.yaml:
version: '2'
services:
nginx:
image: nginx:lastest
ports:
- "127.0.0.100:80:80"
如果我尝试分配 10.240.0.100,我会收到此错误: 启动 userland 代理时出错:listen tcp 10.240.0.100:80: bind: cannot assign requested address
我错过了什么?我是否必须配置 Windows 以支持这些地址?
最佳答案
这是使用 Docker for Windows 吗?这样,您就只能将内容绑定(bind)到主机上的 localhost
。
如果你想在你的机器上测试多节点集群,你需要设置一组单独的虚拟机:
> docker-machine create -d hyperv --hyperv-virtual-switch "Better New Virtual Switch" master
> docker-machine create -d hyperv --hyperv-virtual-switch "Better New Virtual Switch" worker1
> docker-machine create -d hyperv --hyperv-virtual-switch "Better New Virtual Switch" worker2
初始化群:
> docker-machine inspect --format '{{ json .Driver.IPAddress }}' master
"192.168.202.112"
> docker-machine ssh master docker swarm init --advertise-addr 192.168.202.112
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-4k5ljcmxs1d9q14lth4tfbg868lf8eqi5alxtvgo7s1ptyrhlu-3ihz3bfmx5622vei1smzetudf \
192.168.202.112:2377
添加 worker :
> docker-machine ssh worker1 docker swarm join --token SWMTKN-1-4k5ljcmxs1d9q14lth4tfbg868lf8eqi5alxtvgo7s1ptyrhlu-3ihz3bfmx5622vei1smzetudf 192.168.202.112:2377
> docker-machine ssh worker2 docker swarm join --token SWMTKN-1-4k5ljcmxs1d9q14lth4tfbg868lf8eqi5alxtvgo7s1ptyrhlu-3ihz3bfmx5622vei1smzetudf 192.168.202.112:2377
SSH 进入 master 并进入城镇(或从主机使用它):
> docker-machine ssh master
> docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
aojoo2h0uuj5hv1c9xajo67o2 worker1 Ready Active
eqt1yd8x52gph3axjkz8lxl1z * master Ready Active Leader
详情在这里:https://github.com/docker/for-mac/issues/67#issuecomment-242239997
关于windows - 适用于 Windows 的 Docker : cannot assign requested address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39159740/