来自:https://blog.youkuaiyun.com/pf1234321/article/details/78434980
为什么要端口映射?
在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。
端口映射的指令是什么?
docker指令:docker run -p ip:hostPort:containerPort redis
使用-p参数会分配宿主机的端口映射到虚拟机。
IP表示主机的IP地址。
hostPort表示宿主机的端口。
containerPort表示虚拟机的端口。
支持的格式有三种:
ip:hostPort:containerPort:映射指定地址的指定端口到虚拟机的指定端口(不常用)
如:127.0.0.1:3306:3306,映射本机的3306端口到虚拟机的3306端口。
ip::containerPort:映射指定地址的任意端口到虚拟机的指定端口。(不常用)
如:127.0.0.1::3306,映射本机的3306端口到虚拟机的3306端口。
hostPort:containerPort:映射本机的指定端口到虚拟机的指定端口。(常用)
如:3306:3306,映射本机的3306端口到虚拟机的3306端口。
如何查看是否映射成功?
使用docker ps命令查看

出现6379/tcp的表示宿主机并没有打开与虚拟机的端口映射。
出现0.0.0.0:3306->3306/tcp表示宿主机的3306端口映射到了虚拟机的3306端口。
也可以使用docker port NAME查看端口映射情况。

表示虚拟机的3306端口映射到了主机的3306端口。
如果没有任何回复,表示端口映射失败。
本文详细介绍了在Docker中进行端口映射的原因、方法及验证方式。阐述了为何在启动容器时需要配置宿主与虚拟机的端口映射,并解释了docker run命令中-p参数的用法,包括其支持的三种格式。同时,提供了检查端口映射是否成功的命令。
2593

被折叠的 条评论
为什么被折叠?



