Docker - 容器互联
容器互联
通过docker run命令的--link参数可以让容器之间通过连接(linking)系统进行交互。
参数格式: --link name:alias ,name是要链接的容器名称, alias是此连接的别名。
容器的连接系统会依据容器的名称,创建容器之间一个安全隧道,在启动容器的时候不使用-p和-P参数(不用映射端口到宿主主机),从而避免了暴露端口到外部网络。
通过docker run命令的--name参数来自定义容器名称(容器的名称是唯一的)。
通过docker ps命令结果的NAMES部分,查看容器名称。
Docker通过环境变量为容器公开连接信息,还添加host信息到父容器的/etc/hosts文件。
用户可以链接多个父容器到子容器。
示例
[root@CentOS-7 ~]# docker run -d --name nginx-node nginx
fc94ef26e3ab354db09323037f9a5119b18b48b8ca8c0f353ce3d3408230456d
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker run -itd --name centos-node --link nginx-node:samplelink centos
b5f56401c44d7b41f060e603b0a98309a0e996ffa66a0c177edee13364820f57
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5f56401c44d centos "/bin/bash" 4 seconds ago Up 3 seconds centos-node
fc94ef26e3ab nginx "nginx -g 'daemon off" 23 seconds ago Up 22 seconds 80/tcp, 443/tcp nginx-node
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker inspect --format "{{ .NetworkSettings.IPAddress }}" nginx-node
172.17.0.2
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker inspect --format "{{ .NetworkSettings.IPAddress }}" centos-node
172.17.0.3
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker exec -it nginx-node env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=fc94ef26e3ab
NGINX_VERSION=1.11.13-1~jessie
HOME=/root
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker exec -it centos-node env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b5f56401c44d
TERM=xterm
SAMPLELINK_PORT=tcp://172.17.0.2:80
SAMPLELINK_PORT_80_TCP=tcp://172.17.0.2:80
SAMPLELINK_PORT_80_TCP_ADDR=172.17.0.2
SAMPLELINK_PORT_80_TCP_PORT=80
SAMPLELINK_PORT_80_TCP_PROTO=tcp
SAMPLELINK_PORT_443_TCP=tcp://172.17.0.2:443
SAMPLELINK_PORT_443_TCP_ADDR=172.17.0.2
SAMPLELINK_PORT_443_TCP_PORT=443
SAMPLELINK_PORT_443_TCP_PROTO=tcp
SAMPLELINK_NAME=/centos-node/samplelink
SAMPLELINK_ENV_NGINX_VERSION=1.11.13-1~jessie
HOME=/root
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker exec -it nginx-node cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 fc94ef26e3ab
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker exec -it centos-node cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 samplelink fc94ef26e3ab nginx-node
172.17.0.3 b5f56401c44d
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker exec -it centos-node ping nginx-node
PING samplelink (172.17.0.2) 56(84) bytes of data.
64 bytes from samplelink (172.17.0.2): icmp_seq=1 ttl=64 time=0.339 ms
64 bytes from samplelink (172.17.0.2): icmp_seq=2 ttl=64 time=0.146 ms
^C
--- samplelink ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.146/0.242/0.339/0.097 ms
[root@CentOS-7 ~]#
Docker - 容器互联的更多相关文章
- 使用weave实现跨主机docker容器互联
关于weave的原理不做细致的说明,如果想了解weave可以登陆官网:https://www.weave.works/ In this post,使用阿里云3台ECS服务器进行weave搭建,并测试搭 ...
- 【Docker学习之六】Docker容器互联
环境 docker-ce-19.03.1-3.el7.x86_64 centos 7 一.基于Volume的互联就是-v参数,将本机文件或目录挂载到容器目录,实现文件目录共享 二.基于Link的互联 ...
- Docker系列(四):Docker容器互联
基于Volume的互联 为什么需要Volume docker文件系统是分层的,下面的是全部是只读的,最上面的是可写层,容器中的进程如果修改了某个文件,比如修改了下层的某个文件,其实是在最顶层复制下层文 ...
- docker容器互联,实现目录、服务共享
一.需求 docker使服务之间实现容器隔离,比如Javaweb项目前端.后端.数据库.数据库后台,分别把它们部署在不同的容器里面,实现隔离.但服务和服务之间也有互访的需求,这就涉及到容器网络和容器互 ...
- Docker | 容器互联互通
上篇讲到创建自定义网络,我创建了 mynet 网络,并指定了网关和子网地址.在上篇结尾呢,我抛出了一个问题:其它网络下的容器可以直接访问mynet网络下的容器吗?今天就让我们一块看下怎么实现容器互联. ...
- docker容器互联
link方式 http://blog.csdn.net/halcyonbaby/article/details/42112325 通过link方式创建容器,然后我们可以使用被link容器的别名进行访问 ...
- docker容器互联 (.net core容器,mysql容器)
背景 有两个容器一个运行的.net core的项目 另一个运行的mysql的数据 并且这两个容器在同一个机子上(或者局域网),那么理论上.net core的项目去访问mysql是可以走内网的 但是容器 ...
- 使用openvswitch实现跨主机docker容器互联
安装openvswitch的步骤请参考上一篇文章:http://www.cnblogs.com/xkops/p/5568167.html 环境:192.168.3.201 node1192.168.3 ...
- Docker 数据卷与容器互联
Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
随机推荐
- 【转】并行类加载——让tomcat玩转双十一 @双十一实战
原文:https://yq.aliyun.com/articles/4227?spm=5176.100239.yqblog1.20.cfRztB 摘要: 今年双十一,是应用容器的最新版本Ali-tom ...
- (转)Zabbix Agent-Windows平台配置指导
原地址:http://blog.itpub.net/26739940/viewspace-1169538/ zabbix是一个CS结构的监控系统,支持ping,snmp等很多的监控,但是大部分 ...
- VisualVM监控远程主机上的JAVA应用程序
使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可 ...
- 一步到位Linux中安装配置MySQL及补坑
Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...
- 第六章:3D向量类
第一节:类接口的设计 1.好的类在设计之前首先要回答下列问题:“这些类将包含哪些数据?”,“这个类将提供什么样的操作?”,“在哪些数据上执行操作?”. 我们已经知道我们要设计的是3D向量类,用来存储x ...
- Android 学习笔记之 Actionbar作为回到上一级
首先,给Actionbar添加返回图标: 代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea ...
- WPF中的RichTextBox
原文链接:http://blog.csdn.net/wuzhengqing1/article/details/7010902 取出richTextBox里面的内容 第一种方法:将richTextBox ...
- ajax大洋第一步
Ajax工具包 Ajax并不是一项新技术,它实际上是几种技术,每种技术各尽其职,以一种全新的方式聚合在一起. 服务器端语言:服务器需要具备向浏览器发送特定信息的能力.Ajax与服务器端语言无关. XM ...
- Spring基础学习(三)—详解Bean(下)
一.Bean的生命周期 1.概述 Spring IOC容器可以管理Bean的生命周期,Spring 允许在Bean的生命周期的特定点执行定制的任务. Spring IOC容器对Be ...
- java 基础知识七 装箱和拆箱
java 基础知识七 装箱和拆箱 数据类型可分为两大种,基本数据类型(值类型)和类类型(引用数据类型) 装箱:把基本类型用他们相对应的引用类型包装起来,使他们可以具有对象的特质 基本数据类型 ...