不同容器之间的通信可以借助于 pipework
2017-08-26 22:46
344 查看
不同容器之间的通信可以借助于 pipework 这个工具pipework是由Docker的工程师Jérme Petazzoni开发的一个Docker网络配置工具,由200多行shell实现,方便易用。下载地址:wgethttps://github.com/jpetazzo/pipework.git
把 docker 的桥接指定为 br0,这样跨主机不同容器之间通过 pipework 新建 docker 容器的网卡桥接到 br0,这样跨主机容器之间就可以通信了。
把 docker 默认桥接指定到了 br0,则最好在创建容器的时候加上--net=none,防止自动分配的 IP 在局域网中有冲突。
访问容器提供的web服务:
使用ip netns添加静态路由,避免创建容器使用--privileged=true选项造成一些不必要的安全问题:
[root@localhost src]# unzip pipework-master.zip [root@localhost src]# cp -p pipework-master/pipework /usr/local/bin/安装相应依赖软件
yum install bridge-utils -y [root@localhost src]# docker load < centos7http.tar [root@localhost src]# yum -y install docker配置桥接网络
[root@localhost src]# systemctl restart network
把 docker 的桥接指定为 br0,这样跨主机不同容器之间通过 pipework 新建 docker 容器的网卡桥接到 br0,这样跨主机容器之间就可以通信了。
[root@localhost src]# systemctl stop docker OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false -b=br0' 添加 [root@localhost src]# systemctl start dockerpipework
把 docker 默认桥接指定到了 br0,则最好在创建容器的时候加上--net=none,防止自动分配的 IP 在局域网中有冲突。
[root@localhost src]# pipework使用镜像运行一个容器
[root@localhost src]# docker run -dit --net=none centos7:http 230f28d287a9013b7b660e1b57831c65b82c5338dfafdc16871fe6e0ccc7e150注:默认不指定网卡设备名,则默认添加为 eth1
[root@localhost ~]# pipework br0 -i eth0 230f28d287a 192.168.100.50/24@192.168.100.1注:另外 pipework 不能添加静态路由,如果有需求则可以在 run 的时候加上 --privileged=true 权限在容器中手动添加,但这种安全性有缺陷,可以通过 ip netns 操作 密码默认是 admin
[root@localhost ~]# ssh admin@192.168.100.50
访问容器提供的web服务:
使用ip netns添加静态路由,避免创建容器使用--privileged=true选项造成一些不必要的安全问题:
[root@localhost ~]# docker inspect --format="``.`State`.`Pid`" 230f28d287a9 19440 [root@localhost ~]# ln -s /proc/19440/ns/net /var/run/netns/19440 [root@localhost ~]#
相关文章推荐
- 不同容器之间的通信可以借助于 pipework
- 不同VLAN之间就算没有三层设备也可以相互通信
- Atitit 容器化技术之道 attilax著 1. 概念 1 1.1. 容器是应用服务器中位于组件和平台之间的接口集合。 1 1.2. 有时候也指集合的概念,里面可以存放不同对象 2 1.3. 、新
- Activity与Service通信(不同进程之间)
- Activity与Service通信(不同进程之间)
- 配置单臂路由实现不同vlan之间的通信
- 相同VLAN在不同交换机之间相互通信
- ngularJs项目实战!05: 不同controller作用域之间通信的方式
- Fragment的生命周期&同一Activity下不同Fragment之间的通信
- 不同VLAN之间相互通信的两种方式(方式一:单臂路由)
- 不使用路由器来实现不同网段(子网)计算机之间通信的方法
- Android - Fragment (三)不同Fragment之间的通信
- Activity与Service通信(不同进程之间)
- packet tracer学习小结(不同VLan之间通信 DHCP中继)
- 不同VLAN之间相互通信的两种方式(方式二:三层交换)
- 你能描述一下渐进增强和优雅降级之间的不同吗?如果提到了特性检测,可以加分。
- 用广播(Broadcast)实现不同app之间的通信
- iOS平台下实现不同APP之间的通信
- Activity与Service通信(不同进程之间)
- 不同vlan之间的通信!