zoukankan      html  css  js  c++  java
  • 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 ~]# 
    
  • 相关阅读:
    IIS10保存配置文件及导入、导出、备份、还原
    centos7 根分区扩容
    mssqlserver2014安装步骤
    error:class 'socket.error' [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224
    Centos7安装Redis-5.0.3
    Aspose 学习笔记
    Maven学习笔记
    【web性能测试随笔】一、项目介绍及工具
    【Python学习笔记】python开发环境安装部署
    微信小程序中遮罩层滚动穿透问题(view增加一个属性解决)
  • 原文地址:https://www.cnblogs.com/anliven/p/6799443.html
Copyright © 2011-2022 走看看