Docker|Docker Net 网络
文章图片
四种容器网络原型以及他们之间相互交互的网络拓扑图
- 默认桥接模式
docker run --name b1 -it --rm busybox:latest;

文章图片
此时容器的主机名是容器id,如果想要自定义主机名,在 docker run 时通过 --hostname 指定
docker run --name b1 -it --rm --hostname b1 busybox:latest;
hostname
hostid
cat /etc/hosts
cat /etc/resolv.conf
nslookup -type=a www.baidu.com;
// 域名解析

文章图片
- 无网络模式
docker run --name a1 --rm -it --network none busybox:latest

文章图片
- 联盟式网络(
共享 NET,UTS,IPC
)
docker run --name a2 --rm -it --network container:b1 busybox:latest

文章图片
可以看到新启动的容器 a2 和容器 b1 共享同一个
net namespaces

文章图片
在 b1 容器上启动 httpd 服务,在 a2 容器中通过
wget -O - -q 127.0.0.1
同样可以访问到
- 使用宿主机网络
docker run --name a1 --rm -it --network hostbusybox:latest
关于网桥的设置
1. 创建网络自定义网桥,指定子网、网关信息
docker network create -d bridge --subnet "172.16.0.0/16" --gateway "172.16.0.1" custombr
2. 如何将 docker0 默认的 172.27.0.1 修改成别的地址
修改
/etc/docker/daemon.json
文件,添加 bip(即 bridge ip),就可以设置 docker0 桥自身的 ip 地址,其它字段都可以根据 bip 计算得出,注意的是 dns 无法计算,需要自己配置。默认情况下,只需设置 bip
即可{
"bip": "192.168.1.5/24",
"fixed-cidr": "10.20.0.0/16",
"fixed-cidr-v6": "2001:bd8::/64",
"mtu": 1500,
"default-gateway": "10.20.1.1",
"default-gateway-v6": "2001:bd8:abcd::89",
"dns": ["10.20.1.2", "10.20.1.3"]
}
3. 如何在别的主机上访问另一台主机的 docker daemon 进程
docker daemon 默认仅监听
Unix Socket
格式的文件地址 /var/run/docker.sock
,如果想使用 TCP 套接字连接,修改/etc/docker/daemon.json
添加如下信息:"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
使用
docker -H 192.168.146.128 image ls
即可查看这台机器上的所有镜像了 (-H, --host)【Docker|Docker Net 网络】安装 bridge-utils
yum install -y bridge-utils;
brctl show;
// 查看网络设备

文章图片
image.png
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- Docker应用:容器间通信与Mariadb数据库主从复制
- 猎杀IP
- 自媒体形势分析
- 数学大作战
- 2018.03.18
- 星期天的下午茶(一)
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- 08黑龙江迟淑荣弯柳树网络学院第五期学习赵宗瑞老师主讲的(传统文化与身心健康)教育体系心得体会
- 三国谋略22(找准你的定位)