• docker容器互联


    link方式

    http://blog.csdn.net/halcyonbaby/article/details/42112325

    通过link方式创建容器,然后我们可以使用被link容器的别名进行访问。
    从而解除应用对IP的依赖。
    不幸的是,link方式只能解决单机容器间的互联。多机情况下,容器的互联需要其他的方式。

    
    [root@localhost ~]# docker run -i -t   mysql:latest /bin/bash
    root@7afad07a05b0:/usr/local/mysql# ip addr
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    79: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.4/16 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::42:acff:fe11:4/64 scope link
           valid_lft forever preferred_lft forever
           
    [root@localhost ~]# docker run -i -t --link=sad_bardeen:sql  mysql:latest /bin/bash
    root@931c7ab8135e:/usr/local/mysql# ip addr
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    81: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 02:42:ac:11:00:05 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.5/16 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::42:acff:fe11:5/64 scope link
           valid_lft forever preferred_lft forever
    root@931c7ab8135e:/usr/local/mysql# ping sql
    PING sql (172.17.0.4): 48 data bytes
    56 bytes from 172.17.0.4: icmp_seq=0 ttl=64 time=0.114 ms
    ###可以看出来,加了一个静态dns
    root@931c7ab8135e:/usr/local/mysql# cat /etc/hosts
    172.17.0.5      931c7ab8135e
    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.4      sql
    
    通过容器方式互联

    如上面所说,link只适用于一台主机。
    两台主机,docker官方推荐了如下方式连接两个容器。
    以下以wordpress+mysql的服务为例。部署在两台机器上的wordpress和mysql通过一对ambassador进行连接。
    wordpress(in vm1)--link-->ambassador1(in vm1)----socat--->ambassador2(in vm2)--link--->mysql(in vm2)

    
    启动mysql:
    sudo docker run -d --name mysql mysql
    启动ambassador1:
    sudo docker run -d --link mysql:mysql --name ambassador1 -p 3306:3306 ambassador  
    启动ambassador2:
    sudo docker run -d --name ambassador2 --expose 3306 -e MYSQL_PORT_3306_TCP=tcp://x.x.x.x:3306 ambassador  
    启动wordpress:
    sudo docker run -i -t --rm --link ambassador2:mysql wordpress
    

    参考:
    http://blog.csdn.net/sunset108/article/details/40856957

  • 相关阅读:
    android高级UI之Draw绘制流程、Paint渲染高级应用
    android高级UI之UI绘制流程(测量布局)
    大数据JavaWeb之MySQL基础----多表&事务&DCL
    大数据JavaWeb之MySQL基础---数据库设计、备份与还原
    大数据JavaWeb之MySQL基础---约束
    大数据JavaWeb之MySQL基础---DDL&DQL
    大数据JavaWeb之MySQL基础---MySQL安装、SQL初识
    软引用示例演示与引用队列的作用分析
    Reference的四种状态转换关系分析
    【转】document.form.action,表单分向提交
  • 原文地址:https://www.cnblogs.com/antis/p/5287179.html
Copyright © 2020-2023  润新知