代码之家  ›  专栏  ›  技术社区  ›  John Manko

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

  •  1
  • John Manko  · 技术社区  · 7 年前

    我有一台Windows 7笔记本电脑,我需要制作一个节点,IP地址是动态的。尝试初始化swarm时出现以下问题:

    从Docker Quickstart终端中:

    $ 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 (既做广告又听),这似乎在初始化蜂群方面起到了作用。但是,使用环回会对访问容器产生任何负面/副作用吗?我似乎无法通过compose文件中映射的端口访问任何内容。

    例如,尝试访问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:
    

    我想在一个界面上初始化一个swarm,而不是一个最有可能改变的IP。如何做到这一点?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Bret Fisher    7 年前

    Docker工具箱使用VirtualBox启动预装Docker的VM。

    docker-machine ls 应向您显示quickstart终端在您第一次打开时创建的“默认”计算机。

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

    如果您在VirtualBox中有其他VM(您可以使用 docker-machine create <some-name> )然后确保以相同的顺序启动 docker-machine start <name> 或者在VirtualBox GUI中,因为它将显示IP,从100开始,然后再向上。