docker端口映射底层原理及常见写法
1.将宿主机的所有IP地址的81端口映射到容器的80端口。默认使用tcp协议。
[root@centos201 ~]# docker run -d -p 81:80 --name web01 nginx:1.20.1 e196b4a3a6b1b2bb7b97ccfe99479fd98786653c3799270aef98483b18a19301 [root@centos201 ~]#
2.指定IP地址进行端口映射
[root@centos201 ~]# docker run -d -p 10.0.0.201:82:80 --name web02 nginx:1.20.1 # 指定IP地址进行端口映射 e3f2d718b21ff9e8225a4f0115afcf1b8a10f5bcf150ad7fac396c90bcafcff7 [root@centos201 ~]#
3.指定端口范围进行映射
[root@centos201 ~]# docker run -d -p 10.0.0.201:20-21:20-21 --name web03 nginx:1.20.1 # 指定端口范围进行映射 e9a21d00a28cf679935811b555c4a4398e1836bfd39c7e562f63eb9159fa3bd1 [root@centos201 ~]#
4.指定多个不连续的端口映射
[root@centos201 ~]# docker run -d -p 10.0.0.201:9200:9200 -p 10.0.0.201:9300:9300 --name web04 nginx:1.20.1 # 指定多个不连续的端口映射 bec71b4176c51908b9149ecdb910618885993519e419b68909b99a7222e90b83 [root@centos201 ~]#
5.指定协议,若不指定协议,默认是tcp协议。
[root@centos201 ~]# docker run -d -p 10.0.0.201:53:53/udp -p 10.0.0.201:53:53/tcp --name web05 nginx:1.20.1 # 指定协议,若不指定协议,默认是tcp协议。 fc667244769fc37b6fe40d23c8cb99dcf1b5b6dd0d3281077c205f033f4272fc [root@centos201 ~]#
6.宿主机会产生一个随机端口对容器的80端口进行映射
[root@centos201 ~]# docker run -d -p 10.0.0.201::80/tcp --name web06 nginx:1.20.1 # 宿主机会产生一个随机端口对容器的80端口进行映射 dfd0bbc7cb31f11d11bf648fd7e22547e2e38be1485ab352ec3d2515d321c5cd [root@centos201 ~]#
7.-P(大写)选项可以让宿主机会用一个随机端口对容器暴露的端口进行映射。
[root@centos201 ~]# docker run -d -P --name web07 nginx:1.20.1 # -P(大写)选项可以让宿主机会用一个随机端口对容器暴露的端口进行映射。 8e4142fdfdb716e24e049bf1a5984e712d00352773b55f8a7b518226ba533a7b [root@centos201 ~]# [root@centos201 ~]# docker container ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e4142fdfdb7 nginx:1.20.1 "/docker-entrypoint.…" 6 seconds ago Up 6 seconds 0.0.0.0:32769->80/tcp, :::32768->80/tcp web07 dfd0bbc7cb31 nginx:1.20.1 "/docker-entrypoint.…" About a minute ago Up About a minute 10.0.0.201:32768->80/tcp web06 [root@centos201 ~]#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理