docker关闭容器之间的通信,建立点到点连接
  TEZNKK3IfmPf 2023年11月14日 36 0

一、docker中运行的不同容器之间是允许网络互通的,可以通过–icc=false 来关闭容器之间的通信

打开启动服务文件:vim /usr/lib/systemd/system/docker.service
ExecStart中添加–icc=false
docker关闭容器之间的通信,建立点到点连接
重启服务:systemctl restart docker

运行两个容器:

docker run -d -h web1 nginx_php:1.12.2
docker run -d -h web2 nginx_php:1.12.2

进入到web1,ping web2发现就不能ping通了
docker关闭容器之间的通信,建立点到点连接

当有两个容器之间需要通信该怎么办呢?这里可以创建一个点到点的连接来实现不同容器之间的通信

二、创建一个点到点连接

1、首先启动 2 个容器

docker run -d --name web3 -h web3 nginx_php:1.12.2
docker run -d --name web4 -h web4 nginx_php:1.12.2

2、找到进程号, 然后创建网络命名空间的跟踪文件

[root@jumpserver ~]# docker inspect -f '{
    
      {.State.Pid}}' web3
14401
[root@jumpserver ~]# docker inspect -f '{
    
      {.State.Pid}}' web4
14479
[root@jumpserver ~]# mkdir -p /var/run/netns
[root@jumpserver ~]# ln -s /proc/14401/ns/net /var/run/netns/14401
[root@jumpserver ~]# ln -s /proc/14479/ns/net /var/run/netns/14479

3、创建一对 peer 接口, 然后配置路由

[root@jumpserver ~]# ip link add A type veth peer name B
[root@jumpserver ~]# ip link set A netns 14401
[root@jumpserver ~]# ip netns exec 14401 ip addr add 10.1.1.1/32 dev A
[root@jumpserver ~]# ip netns exec 14401 ip link set A up
[root@jumpserver ~]# ip netns exec 14401 ip route add 10.1.1.2/32 dev A

[root@jumpserver ~]# ip link set B netns 14479
[root@jumpserver ~]# ip netns exec 14479 ip addr add 10.1.1.2/32 dev B
[root@jumpserver ~]# ip netns exec 14479 ip link set B up
[root@jumpserver ~]# ip netns exec 14479 ip route add 10.1.1.1/32 dev B

进入到web3里面,通过ip a s 可以看到用于点到点通信的接口IP
docker关闭容器之间的通信,建立点到点连接
web4上:
docker关闭容器之间的通信,建立点到点连接
在web3上ping web4的10.1.1.2
docker关闭容器之间的通信,建立点到点连接
这就实现了两个容器之间的点到点通信。

通过关闭容器之间的通信和点到点技术,可以减少不同容器之间的干扰,提高容器的安全

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月26日   54   0   0 Docker
  TEZNKK3IfmPf   2024年03月29日   99   0   0 Docker
TEZNKK3IfmPf