docker的容器间通信
引言
在使用docker的过程中,每创建一个容器都会为其分配一个ip地址,如果直接使用ip地址通讯的话,虽然能够通讯,但也太麻烦了,最重要的是这个ip地址还会变化,下次重启容器说不准程序就跑不通了,与是乎就出现了以下两种通信的方式,其本质上也是通过访问容器名称这个域名经过docker的dns服务器自动解析成ip地址。
使用–link
这种方式适用于,已经有一个容器正在运行,在第二个容器启动时加上参数--link 容器名称
,就可以访问第一个正在运行的容器了。
例如:
当前有一个容器名称为centos_1的容器正在运行
lxy@DESKTOP-74EDKD3:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7e0c0f7a46f9 centos:centos7 "/bin/bash" 17 hours ago Up 2 seconds centos_1
现要创建另一个容器去连接第一个容器
docker run -id --name centos_2 --link centos_1 centos:centos7
--link centos_1
:表示当前要创建的容器要连接centos_1这个容器
测试:
lxy@DESKTOP-74EDKD3:~$ docker exec -it centos_2 bash # 进入centos_2容器
[root@2879a10f92f1 /] ping centos_1 # 访问centos_1容器
PING centos_1 (172.17.0.2) 56(84) bytes of data.
64 bytes from centos_1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.133 ms
64 bytes from centos_1 (172.17.0.2): icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from centos_1 (172.17.0.2): icmp_seq=3 ttl=64 time=0.043 ms
64 bytes from centos_1 (172.17.0.2): icmp_seq=4 ttl=64 time=0.039 ms
64 bytes from centos_1 (172.17.0.2): icmp_seq=5 ttl=64 time=0.045 ms
^C
--- centos_1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4172ms
rtt min/avg/max/mdev = 0.039/0.066/0.133/0.036 ms
使用自定义网络
docker默认的bridge
网络是不能把容器名称作为ip进行通讯的,只有自定义网络才行。在自定义网络中的容器之间可以相互通讯。
- 创建自定义网络
docker network create -d bridge my-net
# y
docker network create my-net # 参数可以省略,默认创建的就是桥接类型的网络
- 启动容器时明确指定使用哪个网络
docker run -id --name centos_2 --network my-net centos:centos7
- 启动容器后加入到某个网络
docker network connect my-net centos_1 # 把容器centos_1加入自定义网络my-net
docker的容器间通信相关推荐
- docker容器网络 - 同一个host下的容器间通信
2019独角兽企业重金招聘Python工程师标准>>> 对于复杂的应用,不可避免需要多个服务部署在多个容器中,并且服务间存在相互间通信的情况.比如服务A需要连接mysql的容器.本文 ...
- Docker网络——实现容器间通信、容器与外网通信以及容器的跨主机访问
前言 自定义网络 建议使用自定义的网桥来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址.Docker提供了创建这些网络的默认网络驱动程序,你可以创建一个新的Bridge网络,Over ...
- 容器间通信的三种方式 - 每天5分钟玩转 Docker 容器技术(35)
容器之间可通过 IP,Docker DNS Server 或 joined 容器三种方式通信. IP 通信 从上一节的例子可以得出这样一个结论:两个容器要能通信,必须要有属于同一个网络的网卡. 满足这 ...
- docker 获取宿主机ip_Docker基础修炼6——网络初探及单机容器间通信
如果觉得文章有帮助,欢迎点击头像关注我获取更多原创文章,同时也欢迎转发. 同时也可以在我的历史文章中找到Linux操作系统相关的服务器运维管理入门系列文章,欢迎交流. 前文演示docker容器内部数据 ...
- docker(5、网络2) 1、容器间通信的三种方式 2、 容器如何访问外部 3、 外部如何访问容器
1.容器之间可通过 IP,Docker DNS Server 或 joined 容器三种方式通信 自定义网络 根据业务需要可通过 bridge 驱动创建类似前面默认的 bridge 网络 1.自定义网 ...
- 【Docke进阶篇】Docker网络模式与容器间通信
本篇主要是Docker网络模式与容器间通信. 上一篇:[Docker基础篇]Docker核心概念与指令 文章目录 一.预备知识点 二.Docker网络模式 1.查看Docker网络模式 2.bridg ...
- ping 不通容器 宿主_Docker容器间通信
Docker容器间通信 Docker会为每个创建的容器自动分配一个虚拟IP,这个虚拟IP无法从容器外侧进行访问,只是Docker环境内部容器间彼此通信的标识,容器间的网络是互通互联的. 但是通过这种虚 ...
- Docker的安装和使用及其Docker容器间通信,云计算技术与应用实验报告
实验环境:Windows操作系统,阿里云资源,Docker 实验内容和要求:安装Docker并进行相关实验,熟悉Docker的相关操作.实验包括Docker的安装.镜像和容器的使用.容器的连接.容器间 ...
- 容器间通信_Vue组件间通信的6种方式,前端工程师人人都会,网友:太简单了...
Vue 组件间通信只要指以下 3 类通信:父子组件通信.隔代组件通信.兄弟组件通信,下面分别介绍每种通信方式且会说明此种方法可适用于哪类组件间通信. (1)props / $emit 适用 父子组件通 ...
- docker-compose和docker swarm容器间网络不互通的情况
创建自定义network: docker network create --driver overlay network_name,这个是默认方式创建的网络,只能被swarm service使用,需要 ...
最新文章
- 人工智能的未来需要M1吗
- 山寨版 颈椎病治疗秘籍
- 英国文化影响管理风格_文化如何影响用户体验
- IntelliJ IDEA for Mac在MacOS模式下的编辑快捷键(Editing Shortcut)
- mybatis-plus实现自定义字段修改数据 后续更新CRUD
- matlab编写信号采集程序,MATLAB语音信号采集课程设计
- 浅谈jQuery Mobile设计思想
- R语言实现46种距离算法
- 工作是工作,爱好是爱好,理想是另外一回事
- “缺少winload.efi”的解决办法“:Windows Boot Manager更改读取启动信息路径
- php wps导入数据库,金山的wps的表格怎样导入sqlserver2008数据库中??_wps excel表格怎么导入数据库...
- SAP中检验计划创建晚于检验批导致无法质检的问题分析处理
- css 链接设计,css将超链接a设计成按钮样式实例
- oracle dba 培训教程 第11章 索引的管理与维护
- linux系统无线网卡驱动安装,在linux上怎么安装无线网卡驱动?
- 内网虚拟机静态IP设置VMWare内网通外网不通把某一网段白名单虚拟机ping不通主机虚拟机桥接改成非192.168网段服务器与电脑直连共享wifi
- Python变量和基本数据类型
- 以代码绘制圣诞,过快乐圣诞节!
- 《统计学习方法》 第九章 EM算法(原理+代码)
- startuml如何画流程图_实例介绍用Visio画UML流程图方法