docker –link容器互联

服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64

2.1 docker容器互联的三种方式

同一个宿主机上的多个docker容器之间如果想进行通信有三种方式:

使用docker –link需要注意以下几点:

docker –link 使用了link机制后,可以通过指定的名字来和目标容器通信,这其实是通过给/etc/hosts中加入名称和IP的解析关系来实现的。

3.1 通过容器IP地址进行通信

创建一个MySQL容器

[root@k8smaster ~]# docker run -dit --restart=always --name=mysql5 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 hub.c.163.com/library/mysql:latest
03982d14608971f6af6783ad0eb6611516c8b19e449dc05e899a802cabfe99f0

查看MySQL容器IP

[root@k8smaster ~]# docker inspect mysql5 | grep -i ipaddr
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.4",
                    "IPAddress": "172.17.0.4",

创建一个centos容器,并测试容器的连通性

#ping MySQL容器IP,可以看到成功ping通
[root@k8smaster ~]# docker run -it --restart=always --name=centos7 hub.c.163.com/library/centos:latest ping 172.17.0.4
PING 172.17.0.4 (172.17.0.4) 56(84) bytes of data.

64 bytes from 172.17.0.4: icmp_seq=1 ttl=64 time=0.168 ms
64 bytes from 172.17.0.4: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from 172.17.0.4: icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from 172.17.0.4: icmp_seq=4 ttl=64 time=0.185 ms
^C
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.086/0.103/0.126/0.020 ms

进入容器ping mysql

`shell
[root@k8smaster ~]# docker exec -it c7 /bin/bash

[root@0eea8b40d874 /]# ping mysql
PING mysql (172.17.0.4) 56(84) bytes of data.

64 bytes from mysql (172.17.0.4): icmp_seq=1 ttl=64 time=0.108 ms
64 bytes from mysql (172.17.0.4): icmp_seq=2 ttl=64 time=0.107 ms
64 bytes from mysql (172.17.0.4): icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from mysql (172.17.0.4): icmp_seq=4 ttl=64 time=0.080 ms
^C

Original: https://www.cnblogs.com/renshengdezheli/p/16640281.html
Author: 人生的哲理
Title: docker –link容器互联

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582049/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球