10、CentOS7 安装Docker之扩展(容器内部连接不需要在主机上映射端口)

本文介绍如何使用Docker的link参数实现容器间的内部连接,避免端口暴露于主机网络,增强安全性。通过实例演示wordpress容器如何连接到独立的mysql数据库容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

容器内部连接(不需要在主机上映射端口)

 

上一个技术点展示了如何通过暴露端口来开放你的容器到主机网络。不过当你只是想容器内部之间连接时,就不再想把端口暴露给主机网络或外部网络了。
在本文将介绍如何通过Docker link参数来实现这个目的,来确保外部无法访问你的内部服务。

问题

你想要允许容器内部之间的连接。

方法

通过docker的链接功能来允许容器相互通信。

讨论

继续我们wordpress的设置,我们打算从wordpress容器分离出mysql数据库,然后不通过端口映射方式来使它们能够相互通信。如图:


按照如下命令来运行容器,第一个和第二个命令相隔一分钟执行:

  1. $ docker run --name wp-mysql -e MYSQL_ROOT_PASSWORD=yoursecretpassword -d mysql
  2. $ docker run --name wordpress --link wp-mysql:mysql -p 10003:80 -d  wordpress

在第一个命令中,给容器设置了wp-mysql名称以便之后引用。并且提供一个环境变量(-e MYSQL_ROOT_PASSWORD=yoursecretpassword)来使mysql容器能够完成初始化。
在第二个命令中,以wordpress命名容器,并通过–link wp-mysql:mysql来连接wp-mysql与wordpress容器。注意链接不会等待链接容器启动完成,所以上一步的操作需要等待一分钟以便让mysql容器先完成启动。不过最好的方法是通过docker logs wp-mysql来查看mysql容器是否已经准备接受连接了。
在这个示例中最重要的是–link参数,这个参数使wordpress容器自动维护/etc/hosts文件来使wp-mysql mysql等名称指向mysql容器IP。

启动次序事项:容器必须按正确的次序来启动以便存在的容器映射能够正确的替换。目前为止链接的动态解析不是docker的一项功能。

为了能够让容器能够被连接,比如mysql容器,就需要在创建mysql镜像时暴露端口,如暴露3306端口,这个可以在Dockerfile使EXPOSE完成。
至于为什么为这样做,请参考http://dockone.io/article/455

 

转载地址:https://www.centos.bz/2016/11/docker-container-internally-connect/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值