Docker端口映射与容器互联

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

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

① 从外部访问容器应用

在容器启动时如果不指定对应参数,在容器外部是无法通过网络访问容器内的网络应用和服务的
当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p来指定端口映射

参数映射范围
-P随机映射49000-49900端口
-p指定要映射的端口,一个指定端口只能绑定一个容器
格式 IP:HostPort:ContainerPort

在这里插入图片描述

# 本地5000端口映射到容器5001端口
docker container run -it -d --name nginx_server1 -p 5000:5001 646f1785266a
# 可以通过多个-p绑定多个端口
docker container run --name webapp -d -p 5000:5000 -p 5001:5001 646f1785266a

# 映射指定地址的指定端口
docker container run --name webapp -d -p 127.0.0.1:5000:5000 646f1785266a
# 映射指定地址的任意端口
docker container run --name webapp -d -p 127.0.0.1::5000 646f1785266a
# 还可以使用udp来标记指定udp端口
docker container run --name webapp -d -p 127.0.0.1:5000:5000/udp 646f1785266a

进入容器nginx_server1 安装nginx并修改其相关配置
在这里插入图片描述
查看容器ip
在这里插入图片描述
在外部通过容器ip端口进行访问
在这里插入图片描述

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

在源和接收容器上创建连接关系,接收容器可通过容器名访问源容器,而不需要指定具体的ip地址

① 创建容器名

通过 --name 参数指定容器名,且此容器名称是唯一

② 容器互联

通过 --link 参数使容器之间安全的交互

# --link name:alias 【name为要连接容器的名称 alias为别名】
# 先创建一个docker_a容器
docker container run --name docker_a -d 646f1785266a
# 创建一个docker_b容器并连接到docker_a容器
docker container run --name docker_b -d -P --link docker_a:docker_a 646f1785266a
# 此时docker_b容器将可以访问docker_a容器的信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值