默认情况下,Docker 会将所有容器连接到由 docker0 提供的虚拟子网中。
用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接。
解决办法很简单:创建一对 peer 接口,分别放到两个容器中,配置成点到点链路类型即可。
首先启动 2 个容器:
$ sudo docker run -i -t --rm --net=none base /bin/bash root@1f1f4c1f931a:/# $ sudo docker run -i -t --rm --net=none base /bin/bash root@12e343489d2f:/#
找到进程号,然后创建网络名字空间的跟踪文件。
$ sudo docker inspect -f '{{.State.Pid}}' 1f1f4c1f931a
2989
$ sudo docker inspect -f '{{.State.Pid}}' 12e343489d2f
3004
$ sudo mkdir -p /var/run/netns
$ sudo ln -s /proc/2989/ns/net /var/run/netns/2989
$ sudo ln -s /proc/3004/ns/net /var/run/netns/3004
创建一对 peer 接口,然后配置路由
$ sudo ip link add A type veth peer name B $ sudo ip link set A netns 2989 $ sudo ip netns exec 2989 ip addr add 10.1.1.1/32 dev A $ sudo ip netns exec 2989 ip link set A up $ sudo ip netns exec 2989 ip route add 10.1.1.2/32 dev A $ sudo ip link set B netns 3004 $ sudo ip netns exec 3004 ip addr add 10.1.1.2/32 dev B $ sudo ip netns exec 3004 ip link set B up $ sudo ip netns exec 3004 ip route add 10.1.1.1/32 dev B
现在这 2 个容器就可以相互 ping 通,并成功建立连接。点到点链路不需要子网和子网掩码。
此外,也可以不指定 –net=none 来创建点到点链路。这样容器还可以通过原先的网络来通信。
利用类似的办法,可以创建一个只跟主机通信的容器。但是一般情况下,更推荐使用 –icc=false 来关闭容器之间的通信。
| Docker入门教程 | ||
| Docker简介 | Docker基本概念 | Docker安装 |
| 什么是Docker | i.镜像 | 使用Debian操作系统安装Docker |
| 为什么要用Docker | ii.容器 | 使用CentOS操作系统安装Docker |
| iii.仓库 | 使用Ubuntu操作系统安装Docker | |
| Docker images镜像详细介绍 | Docker容器 | Docker仓库 |
| 获取Docker images | Docker容器启动 | Docker Hub |
| 查找Docker images | Docker容器新建 | 私有仓库 |
| 下载Docker images | Docker容器终止 | Docker配置文件 |
| 创建我们自己的Docker images | Docker容器进入容器 | |
| Docker容器导出和导入 | ||
| Docker容器删除 | ||
| Docker数据管理 | Docker网络 | Docker高级网络配置 |
| 数据卷容器 | 外部访问容器 | 快速配置指南 |
| 数据卷备份、恢复、迁移 | 容器互联 | 配置 DNS |
| 容器访问控制 | ||
| 端口映射实现 | ||
| 配置 docker0 网桥 | ||
| 自定义网桥 | ||
| 实例:创建一个点到点连接 | ||
| Docker安全 | Dockerfile | Docker底层实现 |
| i. 内核名字空间 | i. 基本结构 | i. 基本架构 |
| ii. 控制组 | ii. 指令 | ii. 名字空间 |
| iii. 服务端防护 | iii. 创建镜像 | iii. 控制组 |
| iv. 内核能力机制 | iv. 联合文件系统 | |
| v. 其它安全特性 | v. 容器格式 | |
| vi. 总结 | 网络 | |
| Docker实战案例 | ||
| 使用 Supervisor 来管理进程 | ||
| 创建 tomcat/weblogic 集群 | ||
| 多台物理主机之间的容器互联 | ||
| 标准化开发测试和生产环境 | ||
DockerInfo
评论前必须登录!
注册