docker笔记13 - 容器间的单双向通信
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 - 容器间的单双向通信相关推荐
- Docker学习:容器间数据挂载与共享 | 远程共享挂载数据卷 | sshfs挂载远程volume | 容器内部通过sshfs访问远程主机 | -v |--volumes-from(实战篇)
前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,主要介绍宿主.容器间数据共享,它的好处自然不言而喻,Tomcat集群就是这么玩儿的(多个tomcat服务,对应一套web应用). 核心原 ...
- Docker网络——实现容器间通信、容器与外网通信以及容器的跨主机访问
前言 自定义网络 建议使用自定义的网桥来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址.Docker提供了创建这些网络的默认网络驱动程序,你可以创建一个新的Bridge网络,Over ...
- Docker笔记2 容器及其基本操作
基础概念 容器是镜像的一个运行时的状态.镜像是静态的只读文件,容器是带有运行时需要的可写文件层,容器中的应用进程处于运行状态. 容器和虚拟机的差别: 容器:独立运行的一组应用以及这组应用所必须的运行环 ...
- docker笔记之容器镜像命令
文章目录 一.镜像命令 二.容器命令 三.总结 一.镜像命令 #查看所有的镜像 [root@iZbp10d5h2h0qbsabf055iZ docker]# docker images REPOSIT ...
- Docker笔记--创建容器、退出容器、查看容器、进入容器、停止容器、启动容器、删除容器、查看容器详细信息
目录 1--docker run创建容器 2--exit退出容器 3--docker ps查看容器 4--docker exec进入容器 5--docker stop停止容器 6--docker st ...
- Docker学习:容器五种(3+2)网络模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定义网络模式详解
前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍容器网络模式, 属于了解范畴,充分了容器的网络模式,更有助于更好的理解Docker的容器之间的访问逻辑. 疑问:为什么要了解容器 ...
- ping 不通容器 宿主_Docker容器间通信
Docker容器间通信 Docker会为每个创建的容器自动分配一个虚拟IP,这个虚拟IP无法从容器外侧进行访问,只是Docker环境内部容器间彼此通信的标识,容器间的网络是互通互联的. 但是通过这种虚 ...
- Docker容器间网络通信
自从Docker容器出现以来,容器网络通信就一直是被关注的焦点,也是生产环境的迫切需求.容器网络通信又分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信. 一.Docker单主机容器通信 基 ...
- Docker 学习笔记(Docker 架构 / 镜像 / 容器 / 常用命令 / Dockerfile / 镜像仓库)
Docker 1. Docker 入门 1.1 Docker 是什么 1.2 Docker 和 虚拟机 1.3 镜像 容器 仓库 1.4 Docker 架构 1.5 Docker 安装 1.6 doc ...
最新文章
- three20 阅读到的代码
- STC用PCA测量脉宽_用于相干激光雷达的大能量长脉宽单频激光器 | COL
- Spring Bean的获取与实例化
- 解剖SQLSERVER 第四篇 OrcaMDF里对dates类型数据的解析(译)
- ARM(IMX6U)裸机官方SDK包使用
- 计算机网络段标试卷,计算机网络基础-段标-第2章.ppt
- 再谈RetinaNet
- Hive DDL DML
- 绘画和照片编辑:Artstudio Pro for mac
- 计算机ram rom,ROM和RAM区别是什么?
- 《秘密》-- 东野圭吾
- CC++:计算某年某月的1号是星期几
- Intel第十代CPU集成显卡不再支持 Legacy启动 (i5-10400...)
- QQ音乐 vs 网易云音乐,用户体验哪家强?
- 共模电感磁芯材质你知道哪几种
- CMake Error: Could not find a package configuration file provided by “serial“
- 帮忙写一份2022年医院信息科年度工作汇报
- 关于urllib2.urlopen()的理解
- java面试题-捕获异常
- 安全背后: 浏览器是如何校验证书的
热门文章
- vs2019选定内容没有属性页_【灌篮高手】新版本倒计时——球服属性自由更改?!...
- 未检测到与wia兼容的设备_WIA-TWAIN 兼容性
- 位运算实现加减乘除四则运算
- c语言课程教学的建议,C语言程序设计课程教学思考.doc
- KDD 2021 | 推荐系统论文集锦[持续更新]
- rocksdb配置参数
- 用户留存分析的几种方法
- jquery实时监控屏幕宽度
- ACP敏捷9.敏捷应用场景
- python for finance pdf_python金融大数据分析 pdf