Docker0为NAT桥,所以容器一般获得的是私有网络地址

给docker run命令使用-p选项即可实现端口映射,无需手动添加规则

-p 选项的使用

-p <containerPort>

将指定的容器端口映射到主机所有地址的一个动态端口

-p <hostPort>:<containerPort>

将容器端口<containerPort> 映射到指定的主机端口<hostPort>

-p <ip>::<containerPort>

将指定的容器端口<containerPort> 映射到主机指定<ip> 的动态端口

-p <ip>:<hostPort>:<containerPort>

将指定的容器端口<containerPort> 映射至主机指定<ip> 的端口<hostPort>

动态端口指随机端口,可以使用docker port命令查看具体映射结果

-P 暴露所有端口(所有端口指构建镜像时EXPOSE的端口)

自定义docker0桥的网络属性信息:/etc/docker/daemon.json文件

{
"bip": "192.168.1.5/24",
"fixed-cidr": "10.20.0.0/16",
"fixed-cidr-v6": "2001:db8::/64",
"mtu": 1500,
"default-gateway": "10.20.1.1",
"default-gateway-v6": "2001:db8:abcd::89",
"dns": ["10.20.1.2","10.20.1.3"]
}

核心选项为bip,即bridge ip之意,用于指定docker0桥自身的IP地址;其它选项可通过此地址计算得出

远程连接

创建自定义的桥

docker network create -d bridge --subnet "172.26.0.0/16" --gateway "172.26.0.1" mybr0