Docker-端口映射【基本使用】

本文详细介绍了Docker端口映射的各种用法,包括宿主机80端口映射到容器80端口、指定监听IP和端口、多IP场景、随机端口映射、UDP协议、多端口映射、不指定端口映射以及如何查看和添加端口映射。

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

目录

【1】宿主机80端口映射到容器80端口

【2】指定监听宿主机的IP+端口,映射到容器的80端口

【3】多IP的使用场景,将多个容器同时将宿主机的80端口映射到多个容器的80端口

【4】使用随机端口映射到容器的80端口

【5】UDP协议端口映射(不指定默认是TCP)

【6】多端口映射(宿主机映射多个端口到容器中)

【7】不指定映射的端口,全部随机

【8】查看容器是否有端口映射

【9】为已经创建启动的容器添加端口映射


【1】宿主机80端口映射到容器80端口

[root@docker-01 ~]# docker run -dit -p 80:80 --name nginx-01 nginx:latest 
bdf6cd33afd0ca65857a7a437efa9a1f6a879293471dd461f17542bb204a526e

[root@docker-01 ~]# iptables -t nat -L -n -v
......
......
Chain DOCKER (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0           
    0     0 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:172.17.0.2:80

[root@docker-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2424/docker-proxy   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      874/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1510/master         
tcp6       0      0 :::80                   :::*                    LISTEN      2429/docker-proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      874/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1510/master     

 验证

 

【2】指定监听宿主机的IP+端口,映射到容器的80端口

[root@docker-01 ~]# docker run -dit -p 10.0.0.51:90:80 --name nginx-02 nginx:latest 
ae667e592e4455633adc690a29542d1c748bb5dd2ecc77cddc7032a48a238832

验证

 

那么第一个和第二个有什么区别,如果我们有多块网卡

[root@docker-01 ~]# docker inspect nginx-01 | grep Id
        "Id": "bdf6cd33afd0ca65857a7a437efa9a1f6a879293471dd461f17542bb204a526e",
[root@docker-01 ~]# docker inspect nginx-02 | grep Id
        "Id": "ae667e592e4455633adc690a29542d1c748bb5dd2ecc77cddc7032a48a238832",

 第一种生成的配置:没有指定IP绑定,是不是宿主机存在的IP都可以访问

 那么我们验证使用其他IP访问,也是说没有指定IP,宿主机中的任意IP都可以访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦有一把琐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值