1.容器间基于Link实现单向通信
镜像列表

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7-2               791ec8dd389e        29 hours ago        448MB
mysql               5.7-1               d70d42c82d14        29 hours ago        448MB
redis               4                   26672d825c28        2 days ago          468MB
mysql               5.7                 a4fdfd462add        4 days ago          448MB
nginx               1.6                 5001dfcbffca        6 days ago          393MB
tomcat              8                   1b84c8c44909        10 days ago         1.04GB
jenkins/jenkins     lts                 5307ff34e221        4 weeks ago         648MB
jekins              lastest             5307ff34e221        4 weeks ago         648MB
centos              7                   5e35e350aded        6 months ago        203MB
[root@iZbp1e9mxelwe7pwimpw8sZ ~]#

启动一个nginx容器,命令:
docker run -itd --name=nginx_linnk_1 /usr/local/nginx/sbin/nginx -g "daemon off;

启动另外一个nginx容器,实现与第一个容器的单向通信,命令:
docker run -itd --name=nginx_link_2 --link nginx_link_1 /usr/local/nginx/sbin/nginx -g "daemon off;

docker运行中的容器:

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
181844dbfb61        nginx:1.6           "/usr/local/nginx/sb…"   11 minutes ago      Up 11 minutes       80/tcp              nginx_link_2
eb1d23fa4cc2        nginx:1.6           "/usr/local/nginx/sb…"   14 minutes ago      Up 14 minutes       80/tcp              nginx_link_1

进入容器1(nginx_link_1),命令:
docker exec -it nginx_link_1 /bin/bash

对容器2(nginx_link_2)进行ping,发现网络不通:

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker exec -it nginx_link_1 /bin/bash
[root@eb1d23fa4cc2 hecr]# ping nginx_link_2
ping: nginx_link_2: Name or service not known
[root@eb1d23fa4cc2 hecr]#

进入容器2(nginx_link_2),命令:
docker exec -it nginx_link_2 /bin/bash

对容器1(nginx_link_1)进行ping,发现网络是通的:

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker exec -it nginx_link_2 /bin/bash
[root@181844dbfb61 hecr]# ping nginx_link_1
PING nginx_link_1 (172.17.0.2) 56(84) bytes of data.
64 bytes from nginx_link_1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from nginx_link_1 (172.17.0.2): icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from nginx_link_1 (172.17.0.2): icmp_seq=3 ttl=64 time=0.053 ms
64 bytes from nginx_link_1 (172.17.0.2): icmp_seq=4 ttl=64 time=0.051 ms
^C
--- nginx_link_1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.051/0.052/0.053/0.007 ms
[root@181844dbfb61 hecr]#

2.容器间利用bridge网桥实现双向通信
列出现有的网络:
命令
docker network ls

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
c175304a4818        bridge              bridge              local
8e8d3ff96d63        host                host                local
a3cfa4f96530        none                null                local
[root@iZbp1e9mxelwe7pwimpw8sZ ~]#

创建一个桥接网络:
命令
docker network create -d bridge my_bridge

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker network create -d bridge my_bridge
2c1803274ea481a2e996becfa1ebe0295e3feea1eafaf09440f8b5507797dba0
[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
c175304a4818        bridge              bridge              local
8e8d3ff96d63        host                host                local
2c1803274ea4        my_bridge           bridge              local
a3cfa4f96530        none                null                local
[root@iZbp1e9mxelwe7pwimpw8sZ ~]#

启动两个nginx容器:
命令
docker run -itd --name=nginx_bridge_1 nginx:1.6 /usr/local/nginx/sbin/nginx -g “daemon off;”

docker run -itd --name=nginx_bridge_2 nginx:1.6 /usr/local/nginx/sbin/nginx -g “daemon off;”

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker run -itd --name=nginx_bridge_1 nginx:1.6 /usr/local/nginx/sbin/nginx -g "daemon off;"
a75e605f488c790f249bd0e69214260d4ecb3c31b425361fb94bbb32dd88e302
[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker run -itd --name=nginx_bridge_2 nginx:1.6 /usr/local/nginx/sbin/nginx -g "daemon off;"
1b75839d36c3e45eb68930303b5d61267e8f22888b85c23a7e7f154875676a1b
[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
1b75839d36c3        nginx:1.6           "/usr/local/nginx/sb…"   4 seconds ago       Up 3 seconds        80/tcp              nginx_bridge_2
a75e605f488c        nginx:1.6           "/usr/local/nginx/sb…"   13 seconds ago      Up 12 seconds       80/tcp              nginx_bridge_1
[root@iZbp1e9mxelwe7pwimpw8sZ ~]#

将容器1、容器2加入桥接网络:
命令
docker network connect my_bridge nginx_bridge_1
docker network connect my_bridge nginx_bridge_2

查看桥接网络my_bridge下的所有容器:
命令
docker network inspect my_bridge

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker network inspect my_bridge
[{"Name": "my_bridge","Id": "2c1803274ea481a2e996becfa1ebe0295e3feea1eafaf09440f8b5507797dba0","Created": "2020-05-25T23:28:07.739076074+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "172.19.0.0/16","Gateway": "172.19.0.1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {"1b75839d36c3e45eb68930303b5d61267e8f22888b85c23a7e7f154875676a1b": {"Name": "nginx_bridge_2","EndpointID": "b2a601c1e61ea572b02c437066a8f83ac367ac1f8a91ce422aeae7ec963b712e","MacAddress": "02:42:ac:13:00:03","IPv4Address": "172.19.0.3/16","IPv6Address": ""},"a75e605f488c790f249bd0e69214260d4ecb3c31b425361fb94bbb32dd88e302": {"Name": "nginx_bridge_1","EndpointID": "f4e5601da58df8c5184e08697c7f3ceee64619725ef4bd9b75ffe24765b0d42d","MacAddress": "02:42:ac:13:00:02","IPv4Address": "172.19.0.2/16","IPv6Address": ""}},"Options": {},"Labels": {}}
]
[root@iZbp1e9mxelwe7pwimpw8sZ ~]#

进入容器1(nginx_bridge_1),并对容器2(nginx_bridge_2)进行ping,发现网络是通的:
命令
docker exec -it nginx_bridge_1 /bin/bash

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
1b75839d36c3        nginx:1.6           "/usr/local/nginx/sb…"   8 minutes ago       Up 8 minutes        80/tcp              nginx_bridge_2
a75e605f488c        nginx:1.6           "/usr/local/nginx/sb…"   8 minutes ago       Up 8 minutes        80/tcp              nginx_bridge_1
[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker exec -it nginx_bridge_1 /bin/bash
[root@a75e605f488c hecr]# ping nginx_bridge_2
PING nginx_bridge_2 (172.19.0.3) 56(84) bytes of data.
64 bytes from nginx_bridge_2.my_bridge (172.19.0.3): icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from nginx_bridge_2.my_bridge (172.19.0.3): icmp_seq=2 ttl=64 time=0.062 ms
64 bytes from nginx_bridge_2.my_bridge (172.19.0.3): icmp_seq=3 ttl=64 time=0.051 ms
^C
--- nginx_bridge_2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.051/0.058/0.062/0.005 ms
[root@a75e605f488c hecr]#

进入容器2(nginx_bridge_2),并对容器1(nginx_bridge_1)进行ping,发现网络是通的:
命令
docker exec -it nginx_bridge_2 /bin/bash

[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
1b75839d36c3        nginx:1.6           "/usr/local/nginx/sb…"   11 minutes ago      Up 11 minutes       80/tcp              nginx_bridge_2
a75e605f488c        nginx:1.6           "/usr/local/nginx/sb…"   11 minutes ago      Up 11 minutes       80/tcp              nginx_bridge_1
[root@iZbp1e9mxelwe7pwimpw8sZ ~]# docker exec -it nginx_bridge_2 /bin/bash
[root@1b75839d36c3 hecr]# ping nginx_bridge_1
PING nginx_bridge_1 (172.19.0.2) 56(84) bytes of data.
64 bytes from nginx_bridge_1.my_bridge (172.19.0.2): icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from nginx_bridge_1.my_bridge (172.19.0.2): icmp_seq=2 ttl=64 time=0.055 ms
64 bytes from nginx_bridge_1.my_bridge (172.19.0.2): icmp_seq=3 ttl=64 time=0.069 ms
^C
--- nginx_bridge_1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.048/0.057/0.069/0.010 ms
[root@1b75839d36c3 hecr]#

3.文章参考链接
a. https://xdclass.net/#/index
b. https://www.jianshu.com/p/0a03b68023e1

docker笔记13 - 容器间的单双向通信相关推荐

  1. Docker学习:容器间数据挂载与共享 | 远程共享挂载数据卷 | sshfs挂载远程volume | 容器内部通过sshfs访问远程主机 | -v |--volumes-from(实战篇)

    前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,主要介绍宿主.容器间数据共享,它的好处自然不言而喻,Tomcat集群就是这么玩儿的(多个tomcat服务,对应一套web应用). 核心原 ...

  2. Docker网络——实现容器间通信、容器与外网通信以及容器的跨主机访问

    前言 自定义网络 建议使用自定义的网桥来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址.Docker提供了创建这些网络的默认网络驱动程序,你可以创建一个新的Bridge网络,Over ...

  3. Docker笔记2 容器及其基本操作

    基础概念 容器是镜像的一个运行时的状态.镜像是静态的只读文件,容器是带有运行时需要的可写文件层,容器中的应用进程处于运行状态. 容器和虚拟机的差别: 容器:独立运行的一组应用以及这组应用所必须的运行环 ...

  4. docker笔记之容器镜像命令

    文章目录 一.镜像命令 二.容器命令 三.总结 一.镜像命令 #查看所有的镜像 [root@iZbp10d5h2h0qbsabf055iZ docker]# docker images REPOSIT ...

  5. Docker笔记--创建容器、退出容器、查看容器、进入容器、停止容器、启动容器、删除容器、查看容器详细信息

    目录 1--docker run创建容器 2--exit退出容器 3--docker ps查看容器 4--docker exec进入容器 5--docker stop停止容器 6--docker st ...

  6. Docker学习:容器五种(3+2)网络模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定义网络模式详解

    前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍容器网络模式, 属于了解范畴,充分了容器的网络模式,更有助于更好的理解Docker的容器之间的访问逻辑. 疑问:为什么要了解容器 ...

  7. ping 不通容器 宿主_Docker容器间通信

    Docker容器间通信 Docker会为每个创建的容器自动分配一个虚拟IP,这个虚拟IP无法从容器外侧进行访问,只是Docker环境内部容器间彼此通信的标识,容器间的网络是互通互联的. 但是通过这种虚 ...

  8. Docker容器间网络通信

    自从Docker容器出现以来,容器网络通信就一直是被关注的焦点,也是生产环境的迫切需求.容器网络通信又分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信. 一.Docker单主机容器通信 基 ...

  9. Docker 学习笔记(Docker 架构 / 镜像 / 容器 / 常用命令 / Dockerfile / 镜像仓库)

    Docker 1. Docker 入门 1.1 Docker 是什么 1.2 Docker 和 虚拟机 1.3 镜像 容器 仓库 1.4 Docker 架构 1.5 Docker 安装 1.6 doc ...

最新文章

  1. three20 阅读到的代码
  2. STC用PCA测量脉宽_用于相干激光雷达的大能量长脉宽单频激光器 | COL
  3. Spring Bean的获取与实例化
  4. 解剖SQLSERVER 第四篇 OrcaMDF里对dates类型数据的解析(译)
  5. ARM(IMX6U)裸机官方SDK包使用
  6. 计算机网络段标试卷,计算机网络基础-段标-第2章.ppt
  7. 再谈RetinaNet
  8. Hive DDL DML
  9. 绘画和照片编辑:Artstudio Pro for mac
  10. 计算机ram rom,ROM和RAM区别是什么?
  11. 《秘密》-- 东野圭吾
  12. CC++:计算某年某月的1号是星期几
  13. Intel第十代CPU集成显卡不再支持 Legacy启动 (i5-10400...)
  14. QQ音乐 vs 网易云音乐,用户体验哪家强?
  15. 共模电感磁芯材质你知道哪几种
  16. CMake Error: Could not find a package configuration file provided by “serial“
  17. 帮忙写一份2022年医院信息科年度工作汇报
  18. 关于urllib2.urlopen()的理解
  19. java面试题-捕获异常
  20. 安全背后: 浏览器是如何校验证书的

热门文章

  1. vs2019选定内容没有属性页_【灌篮高手】新版本倒计时——球服属性自由更改?!...
  2. 未检测到与wia兼容的设备_WIA-TWAIN 兼容性
  3. 位运算实现加减乘除四则运算
  4. c语言课程教学的建议,C语言程序设计课程教学思考.doc
  5. KDD 2021 | 推荐系统论文集锦[持续更新]
  6. rocksdb配置参数
  7. 用户留存分析的几种方法
  8. jquery实时监控屏幕宽度
  9. ACP敏捷9.敏捷应用场景
  10. python for finance pdf_python金融大数据分析 pdf