docker的几种端口映射

1.端口映射介绍

Docker端口映射是指将容器内部的端口与宿主机的端口关联起来,这样可以从宿主机外部访问容器内的服务。默认情况下,容器内的端口仅对容器内的进程可见,无法从宿主机外部访问。端口映射使得外部网络可以通过宿主机上的一个端口访问容器内的服务。

2.端口映射案例

#最常见的写法,将容器的80端口映射到宿主机的88端口。
docker container run -d -p 88:80 nginx:1.20.1
   
#端口映射指定协议为tcp,默认情况下,使用就是tcp,因此通常对于tcp的服务可以不指定。   
docker container run -d -p 89:80/tcp nginx:1.20.1  
    
#端口映射指定为udp,对于服务本身使用的是udp协议的服务而言,此处需要显式指定。
docker container run -d -p 53:53/udp nginx:1.20.1  
    
#将端口映射明确绑定到具体的网卡上。   
docker container run -d -p 10.0.0.101:99:80/tcp nginx:1.20.1
    
#将端口映射明确绑定到具体的网卡上,并且宿主机的端口是随机的。    
docker container run -d -p 10.0.0.101::80/tcp nginx:1.20.1 
    
#端口范围映射,将宿主机的20,21端口映射到容器的20,21端口。    
docker container run -idp 10.0.0.101:20-21:20-21 alpine  
    
#映射连续的端口,可以使用多个-p参数即可。    
docker container run -idp 127.0.0.1:9200:9200 -p 10.0.0.101:9300:9300 alpine
    
#随机端口映射,随机指定端口    
docker container run -dP nginx:1.20.1

3.总结

    (1)对短选项进行合并时,需要注意短选项是否需要传参数,若需要穿参数,应该尽量往后靠;
    (2)当我们使用-p选项时,会自动进行端口映射,底层对应的是iptables的DNAT规则;
    (3)若有多个不连续的端口进行映射时,需要写多个"-p"选项即可;
    (4)使用"-P"(大写)时会自动进行端口映射,这个容器映射的端口取决于镜像对外暴露的服务端口(EXPOSE指令);
    (5)端口映射的语法格式为"-p 宿主机的IP地址:宿主机的端口号:容器的端口号:协议"。
    (6)docker外部节点访问容器时,底层采用的是DNAT技术,而容器访问外部服务,采用的是forward转发功能哟,并没有使用SNAT技术;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liux3528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值