Docker篇之后续增删端口
在创建容器时,可以用-p来指定端口映射,但是在start容器的时候,并没有有关添加端口映射的方法,无奈百度一下,实践一下,记录一下。
在/var/lib/docker/containers/
下,存在着创建好的容器信息,这些都是我们的容器ID
[root@localhost nginx]# ls /var/lib/docker/containers/ 1f7a9dba7e9ab6792f94b689714288b233e8a67f69433d32759e1778e8e160aa 619a15d3bc06c12383dac6d19f739ed57b79c6b7ae8eff4f0ddcfed9c5856348 320559d876596546b00d443569cf82b0520120fe5212f5155c41beff5c96883b b925118f3b03e224bd97d4a8b28eec06e7f8190688c99acded92df834ed211aa 40b82f229080695467d224a8dabade891246bf1009c14be32896459e1933d798
为了认证这一点,我创建了一个有多个端口映射的新容器
[root@localhost nginx]# docker run -it -d -p10022:22 -p 8004:80 -p 8005:8080 --name centos c5 WARNING: IPv4 forwarding is disabled. Networking will not work. b925118f3b03e224bd97d4a8b28eec06e7f8190688c99acded92df834ed211aa [root@localhost nginx]# docker ps b925118f3b03 c5 "/bin/bash" About an hour ago Up About an hour 0.0.0.0:10022->22/tcp, 0.0.0.0:8004->80/tcp, 0.0.0.0:8005->8080/tcp centos
b925118f3b03e224bd97d4a8b28eec06e7f8190688c99acded92df834ed211aa为容器ID,我们进入容器文件夹内看看,由于目录名过于长,不便观看,我在后面会删除后半部分,希望大家能理解。
[root@localhost nginx]# cd /var/lib/docker/containers/b925118f3b03e22411aa/ [root@localhost b925118f3b03e2b28eea]# ls b925118f3b03e224bd97d4a8b28eec06e7f8190688c99acded92df834ed211aa-json.log config.v2.json hostname mounts resolv.conf.hash checkpoints hostconfig.json hosts resolv.conf
其中config.v2.json
和hostconfig.json
内存储着json格式的信息
[root@localhost b925118f3b03ed211aa]# cat hostconfig.json |grep PortBindings "PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"10022"}],"80/tcp":[{"HostIp":"","HostPort":"8004"}],"8080/tcp":[{"HostIp":"","HostPort":"8005"}]}, [root@localhost b925118f31aa]# cat config.v2.json |grep ExposedPorts "ExposedPorts":{"22/tcp":{},"80/tcp":{},"8080/tcp":{}}
这一段里标识这我们进行端口的映射,注意看格式,并注意添加时逗号,
隔开
"22/tcp":[{"HostIp":"","HostPort":"10022"}] "22/tcp":{}
尝试下删除ssh服务的22端口,首先停止容器要修改的容器。
[root@localhost b9251184ed211aa]# docker stop centos
这是删除完的,注意!!万事修改先备份!!
cp hostconfig.json{,.bak} && cp config.v2.json{,.bak} [root@localhost b925118f3b0ed211aa]# cat hostconfig.json |grep PortBindings "PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8004"}],"8080/tcp":[{"HostIp":"","HostPort":"8005"}]} [root@localhost b925118df834ed211aa]# cat config.v2.json |grep ExposedPorts "ExposedPorts":{"80/tcp":{},"8080/tcp":{}}
然后重启服务,可以看到之前的22端口映射已经没有了。
[root@localhost b925118f3b03e11aa]# systemctl restart docker [root@localhost b9254ed211aa]# docker ps b925118f3b03 c5 "/bin/bash" About an hour ago Up 4 seconds 0.0.0.0:8004->80/tcp, 0.0.0.0:8005->8080/tcp centos
同理的话也是可以添加的,这里就不示例了,大家可以自己尝试一下。
本帖子也是纯手工制作,转载请标明出处-----------burukku(づ。◕ᴗᴗ◕。)づ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构