docker如何给已存在的容器添加或修改端口映射

 更新时间:2024年02月06日 16:24:15   作者:Hello_wshuo  
这篇文章主要介绍了docker如何给已存在的容器添加或修改端口映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

简述

这几天研究了一下docker, 发现建立完一个容器后不能增加端口映射了,

因为 docker run -p-p 参数

但是 docker start 没有 -p 参数

让我很苦恼,无奈谷歌了一番,终于让我找到了解决办法

解决办法

一种是将原来的容器提交成镜像,然后利用新的建立的镜像重新建立一个带有端口映射的容器,不推荐这种办法

另一种就是改容器配置文件(也是我推荐的解决办法):

配置文件在

/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json 

还有

config.v2.json 

这俩文件

hash_of_the_container 可以通过 docker inspect 容器名字 来查看

id 就是 容器的 hash 数值,在 hostconfig.json 里有 "PortBindings":{} 这个配置项,

可以改成

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]} 

这里 80 是容器端口,

8080 是本地端口, 然后在 config.v2.json 里面添加一个配置项 "ExposedPorts":{"80/tcp":{}} ,

将这个配置项添加到 "Tty": true, 前面,

我不知道添加到别的地方会不会有影响,因为经过对比正常的端口映射配置项是在这个位置,

这个就是将容器内部端口暴露出来,如果不加这一句端口映射不会成功的,

最后重启 docker的守护进程 service docker restart

这里有个问题就是重启后 用docker ps -a 是看不到端口映射的,但实际已经映射好了

我正常在新建一个带有端口映射容器的时候,重启 docker的守护进程,

端口映射也不会显示出来,但是通过docker inspect 容器名 可以看到配置项已经修改成功了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker换源不生效的原因以及解决方案

    docker换源不生效的原因以及解决方案

    文章讲述了如何更换Docker源以提高镜像拉取速度,但由于一些历史原因,官方和一些自建加速源可能无法完全满足需求,作者通过监控Docker服务状态并找到一个可靠的国内加速源链接,最终解决了Docker源不生效的问题
    2025-02-02
  • Docker多架构镜像构建全过程

    Docker多架构镜像构建全过程

    文章介绍了如何使用DockerBuildx工具实现一次构建同时支持ARM64和AMD64平台的Docker镜像,并详细描述了构建过程、技术方案和问题排查,最终,通过脚本使用指南和常见问题解答,帮助用户更好地理解和使用该工具
    2026-01-01
  • docker阿里云镜像安装tomcat无法访问的解决过程

    docker阿里云镜像安装tomcat无法访问的解决过程

    文章讲述了在Linux系统中,由于阿里云镜像默认是最小的,不包含webapps目录,导致无法直接使用Tomcat,通过在Docker容器中安装Tomcat后,将webapps.dist目录中的文件复制到webapps目录可以解决这个问题
    2025-11-11
  • Windows的docker删除容器后WSL2磁盘空间不释放的问题的解决方法

    Windows的docker删除容器后WSL2磁盘空间不释放的问题的解决方法

    很多同学拉取镜像使用一段时间后发现 C 盘快满了,把之前用过的镜像和容器删除,发现 WSL 挂载目录的虚拟磁盘大小没有变化,非常的奇怪,所以本文介绍了Windows的docker删除容器后WSL2磁盘空间不释放的问题的解决方法,需要的朋友可以参考下
    2024-12-12
  • 如何使用docker部署lnmp多站点

    如何使用docker部署lnmp多站点

    本文给大家介绍如何使用docker部署lnmp多站点,创建一个 Docker 网络以便容器可以在同一网络上进行通信,本文给大家介绍的非常详细,需要的朋友参考下吧
    2023-10-10
  • docker安装opengauss数据库配置过程详解

    docker安装opengauss数据库配置过程详解

    这篇文章主要为大家介绍了docker安装opengauss数据库配置过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • nexus搭建私有docker仓库的方法

    nexus搭建私有docker仓库的方法

    Nexus之前已支持了maven/npm/composer,由于docker仓库和前面几个存在比较大的差异,所以我特此记录下走过的坑,本文重点介绍nexus搭建私有docker仓库的相关知识,感兴趣的朋友一起看看吧
    2024-03-03
  • 修改Docker容器bisheng-frontend中的静态文件的操作步骤

    修改Docker容器bisheng-frontend中的静态文件的操作步骤

    本教程将指导你如何安全地修改运行中的 bisheng-frontend Docker 容器内的静态文件(如图片、SVG 等),我们将采用复制文件 -> 本地修改 -> 挂载重启的最佳实践,以避免直接在容器内修改带来的风险,需要的朋友可以参考下
    2025-11-11
  • Docker容器网络地址的创建修改

    Docker容器网络地址的创建修改

    Docker提供了一个方便的方式来配置容器的网络地址,在本文中,我们将介绍如何修改Docker容器的网络地址,本文主要介绍了Docker容器网络地址的创建修改,感兴趣的可以了解一下
    2024-01-01
  • Docker部署Zookeeper官方镜像的保姆级教程

    Docker部署Zookeeper官方镜像的保姆级教程

    这篇文章介绍了如何使用Docker和Docker Compose部署Zookeeper官方镜像,包括安装Docker及可视化工具、创建挂载目录、运行Zookeeper容器、查看运行状态以及验证是否正常运行,需要的朋友可以参考下
    2025-02-02

最新评论