如何使用动态 IP 在 Windows 7(作为单个节点)上初始化群

How to init a swarm on Windows 7 (as single node) with dynamic IP

我有一台Windows7笔记本电脑,需要做单节点,IP地址是动态的。尝试初始化群时出现以下问题:

来自 Docker 快速启动终端:

$ docker swarm init
Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces (<examples>) - specify on with --advertise-addr

$ docker swarm init --advertise-addr 192.168.1.120 
Error response from daemon: must specify a listening address because the address to advertise is not recognized as a system address, and the system's IP address to use could not be uniquely identified

$ docker swarm init  --advertise-addr 192.168.1.120 --listen-addr 192.168.1.120
Error response from daemon: manager stopped: failed to listen on remote API address: listen tcp 192.168.1.120:2377: bind: cannot assign requested address

我尝试使用 127.0.0.1(既做广告又收听),就初始化群而言,这似乎已经奏效了。但是,使用环回会对访问容器产生任何 negative/side 影响吗?我似乎无法通过他们在撰写文件中的映射端口访问任何内容。

例如,尝试访问 Portainer 失败(未找到),但根据日志,它似乎 运行 没问题:

docker service ls
ID                  NAME                    MODE               REPLICAS           IMAGE                       PORTS
0ugklcrsxtw7        portainer_portainer     replicated         1/1                portainer/portainer:latest  *:4321->9000/tcp

docker service logs 0ugklcrsxtw7
portainer_portainer.1.vom7rarh9ccn@default    | 2018/02/07 20:37:45 Starting Portainer 1.16.1 on :9000

docker-compose.yml:

version: ‘3’
services:
  portainer:
    image: portainer/portainer:latest
    ports:
      - "4321:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer:/data

volumes:
  portainer:

我想在一个接口上初始化一个群,而不是一个很可能会改变的 IP。这是如何实现的?

Docker 工具箱使用 VirtualBox 启动预装 docker 的虚拟机。

docker-machine ls 应该向您显示快速启动终端在您首次打开时创建的 "default" 机器。

只要此 VM 在 VirtualBox 中使用其默认配置,它就应该具有 192.168.99.100

的私有 IP

如果您在 VirtualBox 中有其他 VM(您可以使用 docker-machine create <some-name> 创建许多 docker 节点),请确保以与 docker-machine start <name> 相同的顺序或在 VirtualBox 中启动它们GUI,因为它会给出从 100 开始的 IP 并上升。