【问题标题】:specifying network ip docker指定网络 ip docker
【发布时间】:2021-09-09 21:26:44
【问题描述】:

我正在使用 docker 来部署 zookeeper 集成,并且遇到了一个问题,我认为这是由于 docker 用于 localhost 的代理。

编辑:问题是当我关闭连接时,它们会留在 TIME_WAIT

我想将我的容器的 IP 更改为私有地址空间中的其他内容,例如192.168.0.0 子网,看看能否解决问题。

这是我当前docker-compose.yml的一部分:

version: '2'
services:
       zoo1:
               image: zookeeper
               restart: always
               ports:
                       - 2181:2181
               environment:
                       ZOO_MY_ID: 1
                      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 server.4=zoo4:2888:3888 server.5=zoo5:2888:3888

      zoo2:
              image: zookeeper
              restart: always
              ports:
                      - 2182:2181
              environment:
                      ZOO_MY_ID: 2
                      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 server.4=zoo4:2888:3888 server.5=zoo5:2888:3888

【问题讨论】:

    标签: docker docker-compose apache-zookeeper


    【解决方案1】:

    从dockerdocumentation,当你启动docker daemon时,可以传入以下参数:

    --bip=CIDR:使用标准 CIDR 表示法为 docker0 网桥提供特定的 IP 地址和网络掩码。例如:192.168.1.5/24。

    --fixed-cidr=CIDR 和 --fixed-cidr-v6=CIDRv6:使用标准 CIDR 表示法限制 docker0 子网的 IP 范围。例如: 172.16.1.0/28。此范围必须是固定 IP 的 IPv4 范围,例如 10.20.0.0/16,并且必须是网桥 IP 范围的子集(docker0 或使用 --bridge 设置)。例如,使用--fixed-cidr=192.168.1.0/25, 您的容器的 IP 将从前半部分中选择 包含在 192.168.1.0/24 子网中的地址。

    【讨论】: