如何访问docker内php,docker中容器之间如何访问
发布日期:2022-02-18 13:08:09 浏览次数:10 分类:技术文章

本文共 2033 字,大约阅读时间需要 6 分钟。

5941635edb73787c66c030ef2101379c.png

我们都知道docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢。下面介绍三种方法解决容器互访问题。

方式一、虚拟ip访问

安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问。[root@33fcf82ab4dd /]# [root@CentOS ~]# ifconfig

......

docker0: flags=4163 mtu 1500

inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0

inet6 fe80::42:35ff:feac:66d8 prefixlen 64 scopeid 0x20

ether 02:42:35:ac:66:d8 txqueuelen 0 (Ethernet)

RX packets 4018 bytes 266467 (260.2 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 4226 bytes 33935667 (32.3 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

......

方式二、link

运行容器的时候加上参数link

运行第一个容器docker run -it --name centos-1 docker.io/centos:latest

运行第二个容器[root@CentOS ~]# docker run -it --name centos-2 --link centos-1:centos-1 docker.io/centos:latest

--link:参数中第一个centos-1是容器名,第二个centos-1是定义的容器别名(使用别名访问容器),为了方便使用,一般别名默认容器名。

测试结果如下:[root@e0841aa13c5b /]# ping centos-1

PING centos-1 (172.17.0.7) 56(84) bytes of data.

bytes from centos-1 (172.17.0.7): icmp_seq=1 ttl=64 time=0.210 ms

bytes from centos-1 (172.17.0.7): icmp_seq=2 ttl=64 time=0.116 ms

bytes from centos-1 (172.17.0.7): icmp_seq=3 ttl=64 time=0.112 ms

bytes from centos-1 (172.17.0.7): icmp_seq=4 ttl=64 time=0.114 ms

方式三、创建bridge网络

1.安装好docker后,运行如下命令创建bridge网络:docker network create testnet

查询到新创建的bridge testnet。

7ea14e37ba85566de01f3b388938b3ad.png

2.运行容器连接到testnet网络。

使用方法:docker run -it --name ---network --network-alias [root@CentOS ~]# docker run -it --name centos-1 --network testnet --network-alias centos-1 docker.io/centos:latest

[root@CentOS ~]# docker run -it --name centos-2 --network testnet --network-alias centos-2 docker.io/centos:latest

3.从一个容器ping另外一个容器,测试结果如下:[root@fafe2622f2af /]# ping centos-1

PING centos-1 (172.20.0.2) 56(84) bytes of data.

bytes from centos-1.testnet (172.20.0.2): icmp_seq=1 ttl=64 time=0.158 ms

bytes from centos-1.testnet (172.20.0.2): icmp_seq=2 ttl=64 time=0.108 ms

bytes from centos-1.testnet (172.20.0.2): icmp_seq=3 ttl=64 time=0.112 ms

bytes from centos-1.testnet (172.20.0.2): icmp_seq=4 ttl=64 time=0.113 ms

更多相关教程,请关注PHP中文网docker教程栏目。

转载地址:https://blog.csdn.net/weixin_28871097/article/details/116095592 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:图像处理怎么学matlab,Matlab数字图像处理学习(1)-亮度变换
下一篇:php ci 调用控制器,如何从Codeigniter中的另一个控制器加载一个控制器?

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月14日 06时15分07秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章