美文网首页
docker的link单向通信和bridge双向通信

docker的link单向通信和bridge双向通信

作者: Chaweys | 来源:发表于2021-07-21 22:23 被阅读0次

    1、link单向通信:
    指定mysql一个固定的名称,各个应用服务通过该固定的mysql固定的名称访问,
    即时mysql重启了容器重新分配了IP地址,仍能访问mysql。
    
    举例:
    启动mysql容器:
    docker run --name mydb -e MYSQL_ROOT_PASSWORD=hdc@328216 -d hdc-mysql-5.7
    --name mydb 一定要指定,后续启动其它容器指定--link需要使用到
    
    
    启动centos容器:
    docker run -itd --name mycentos1 centos:7
    此时未指定--link mydb,在mycentos1容器内部是无法ping通mydb
    
    docker run -itd --name mycentos1 --link mydb centos:7
    此时指定--link mydb,在mycentos1容器内部可ping通mydb
    docker exec -it mycentos1 /bin/bash
    ping mydb
    【注】:mydb这个容器一定要提前创建存在,此时再mysql容器内是无法ping通mycentos1容器的。
    
    
    容器内安装命令工具:
    apt-get update
    apt-get install net-tools
    
    
    
    2、bridge网桥双通信:
    创建一个新的网桥: docker network create -d bridge my_bridge
    启动第一个容器:   docker run -itd --name tomcat centos:7
    启动第二个容器:   docker run -itd --name redis centos:7
    把第一个容器加入网桥:docker network connect my_bridge tomcat
    把第二个容器加入网桥:docker network connect my_bridge redis
    
    查看网桥:
    [root@localhost ~]# docker network ls
    NETWORK ID     NAME        DRIVER    SCOPE
    9466c6ace6fd   bridge      bridge    local
    8af92aabb9ce   host        host      local
    891d7a17c133   my_bridge   bridge    local
    7daf584b1f6b   none        null      local
    
    进入任意一个容器内:
    docker exec -it tomcat1 /bin/bash
    [root@1284069b5107 /]# ping tomcat2
    PING tomcat2 (172.18.0.3) 56(84) bytes of data.
    64 bytes from tomcat2.my_bridge (172.18.0.3): icmp_seq=1 ttl=64 time=0.050 ms
    64 bytes from tomcat2.my_bridge (172.18.0.3): icmp_seq=2 ttl=64 time=0.052 ms
    结果:可ping通另一个容器,即实现了双向通信。
    
    

    相关文章

      网友评论

          本文标题:docker的link单向通信和bridge双向通信

          本文链接:https://www.haomeiwen.com/subject/tvsdmltx.html