端口映射与容器互联

        在实际中,经常会碰到需要多个服务组件容器共同协作的情况,这往往需要多个容器之间能够互相访问到对方的服务。Docker除了通过网络访问外,还提供了两个很方便的功能来满足服务访问的基本需求:一是允许映射容器内应用的服务端口到本地宿主机;另一个是互联机制实现多个容器间通过容器名来快速访问。

一、端口映射实现容器访问

        当启动容器时,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。当容器中运行着某些网络应用,要让外部访问这些应用时,可以通过-P或者-p参数来指定端口映射。当使用-P标记时,Docker会随机映射一个端口到内部容器开房的网络端口。

-P:将容器内部使用的网络端口随机映射到我们使用的主机上。

-p:指定要映射的端口,将容器内部使用的特定网络端口映射到宿主机上的特定端口,格式为:hostport:containerport

二、互联机制实现便捷互访

        容器的互联是一种让多个容器中的应用进行快速交互的方式,它会在源和接收容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。

创建一个数据库容器和一个web容器,并将web容器连接到数据库容器

        此时web容器已经和db容器建立互联关系,--link参数格式为:--link name:alias,其中name是要连接的容器名称,alias是该连接的别名。这相当于在两个互联容器间创建了一个虚拟通道,而不用映射它们的端口到宿主机上。在启动db容器的时候并没有使用参数-p或-P,从而避免了暴露数据库服务端口到外部网络上。

docker通过两种方式查看公开连接信息:1、更新环境变量 2、更新/etc/hosts文件

使用env来查看web容器的环境变量,--rm表示容器运行后自动删除

 docker会添加host信息到父容器的/etc/hosts文件

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值