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 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
随机推荐
- JavaScript入门必备
1.JavaScript和Java没有关系,JavaScript是一门(客服端)脚本语言,并且是一个解释性语言. 2.添加JavaScript的方法 (1)内联:通过<script>js代 ...
- html5实例-闪烁的星星
一.绘制五角星 1.1页面结构 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- 简学Python第七章__class面向对象高级用法与反射
Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群 群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...
- css远距离链接
远距离链接主要运用了hover伪类,但是运用了两次 <!DOCTYPE html> <html lang="en"> <head> <me ...
- 关于ng路由的传参问题(传递一个,多个参数)
在ng的页面条转传参数的方法,ui-sref,$state Ui-sref:用于html页面进行单页面的跳转 $state:用于js代码中跳转 重点:明确传递方,接受方 [传递单个参数] 对于传递方: ...
- CF #404 (Div. 2) D. Anton and School - 2 (数论+范德蒙恒等式)
题意:给你一个由'('和')'组成的字符串,问你有多少个子串,前半部分是由'('组成后半部分由')'组成 思路:枚举这个字符串中的所有'('左括号,它左边的所有'('左括号的个数为num1,它的右边的 ...
- 收集下shell使用笔记
让进程转入后台: Ctrl + z 将进程转到前台: fg 产生随机的十六进制数,其中n是字符数: openssl rand -hex n 截取前5个字符: ${variable::} 一次创建多个目 ...
- ubuntu中文字符集格式转换
- ios 毛玻璃效果
推荐第三方库: https://github.com/nicklockwood/FXBlurView FXBlurView*Fx=[[FXBlurView alloc]initWithFrame:CG ...
- js中的IP格式正则匹配校验详解~
IPV4的格式为x:y:z:w,其中{x,y,z,w}属于{0~255}的正整数: 下面是其校验的正则表达式: function isIP(ip) { var re = /^(\d{1,2}|1\d ...