需求
docker 中为容器添加端口映射只能在启动容器时(即 run)添加,而一旦启动完毕后,docker 就不再提供端口映射的功能,那我们可以绕开 docker,自己手动添加吗?答案是可以的!
一番查找后,我了解到 docker 添加端口映射实际上是基于 iptables 实现的,所以只要修改里边的映射规则,就可以作用到 docker 容器上了,步骤如下:
① 获取容器 IP
可以进入到容器,通过 ifconfig 拿到容器的 IP 地址,如下:
当然,如果有为容器固定 IP 地址的,话也可以直接用那个 IP 地址

② 直接绑定
格式如下:
iptables -t nat -A DOCKER -p tcp --dport <主机端口> -j DNAT --to-destination <容器IP地址>:<容器端口>
③ 查看是否映射成功
后期动态映射的接口,在 docker ps [-a] 中是看不
Docker容器动态添加端口映射:iptables操作指南

本文介绍了如何在Docker容器运行后,通过iptables手动添加端口映射。当启动容器后无法添加端口映射时,可以使用iptables直接绑定容器IP。文中详细阐述了获取容器IP、添加映射规则以及检查映射是否成功的过程。此外,还补充了删除iptables规则的方法,以应对映射规则添加错误的情况。
最低0.47元/天 解锁文章

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



