Docker之容器互联

本文详细介绍了如何使用Docker的--link参数实现容器间的互联,以mysql和wordpress为例,阐述了如何通过环境变量和更新hosts文件实现通信,并验证了连接的正确性。
摘要由CSDN通过智能技术生成

这是一篇关于docker容器之间互联的文章,主要讲解了使用–link连接容器的方式

Docker容器间的互联,意思是一个容器可以使用另一个或多个其他容器提供的功能.比如,一个web应用需要数据库的支持,除了在一个容器内同时运行web应用程序和数据库程序之外,更好的办法是用两个容器.一个运行web应用,另一个专门提供数据库服务.这样不仅方便管理,同时也节省资源,尤其是当同一宿主机下运行了多个需要数据库服务的容器时,我们可以使用一个数据库容器同时向它们提供服务.

上次讲Docker的数据管理时,说道Docker使用卷和卷容器来使两个容器通信,使用的是-v标志和–volumes-from参数,但这种方式最主要的任务是提供数据而不是服务,是为了方便数据迁移和备份.而要提供服务的话,使用的是–link参数.(–link参数是用于同一主机上的两个容器之间的互联,而不同主机的两个容器之间的互联我们以后介绍).

使用–link互联有什么好处呢?如果不使用–link的话,我们要让a容器使用b容器提供的服务,就需要b容器通过EXPOSE指令或-e标志将自己的端口暴露出来供其他的容器访问.举个例子,假设你创建了一个运行mysql服务的容器,要给其他的容器提供数据库服务,就要在创建它的Dockerfile中使用EXPOSE指令打开一个端口:

EXPOSE 3306

而且在运行容器时要使用-p标识将端口暴露出来:

docker run --name mysql -p 3306:3306 -d mysql //或者使用-P

这样其它的容器才能访问到mysql服务.
但这样会使端口保留在外,任何容器甚至其他工具均能访问,这会带来一定的安全问题.

下面结合使用mysql镜像和wordpress镜像搭建wordpress博客看一下–link怎么用.(mysql.wordpress镜像均来自Docker Hub官方镜像)
首先启动mysql容器,使用如下命令:

docker run --name mysql -d mysql

我们给这个mysql容器取名为mysql,这里最好不要使用默认的名字,而是给它取一个好记的名字,名字是容易的唯一标示,这个名字以后要用.

然后我们运行一个wordpress容器,这里运行时需要一些参数.我把官方的说明粘贴在下面:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值