运行中的docker容器端口映射如何修改详解

 更新时间:2021年01月25日 09:11:00   作者:西岐軍飛  
这篇文章主要给大家介绍了关于运行中的docker容器端口映射如何修改的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改。当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则。那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运行中的docker容器的端口映射?

方法一:删除原有容器,重新建新容器

这个解决方案最为简单,把原来的容器删掉,重新建一个。当然这次不要忘记加上端口映射。

    优缺点:优点是简单快捷,在测试环境使用较多。缺点是如果是数据库镜像,那重新建一个又要重新配置一次,就比较麻烦了。

方法二:修改容器配置文件,重启docker服务

容器的配置文件路径:

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

    其中的hashofthecontainer是docker镜像的hash值,可以通过docker ps或者docker inspect containername查看。(CONTAINER ID就可以看出来)

    如上图,文件中其中有一项是PortBindings,其中8080/tcp对应的是容器内部的8080端口,HostPort对应的是映射到宿主机的端口9190。8361/tcp对应的是容器内部的8361端口,HostPort对应的是映射到宿主机的端口9191。按需修改端口,然后重启docker服务,再启动容器服务就可以了。

systemctl restart docker

    优缺点:这个方法的优点是没有副作用,操作简单。缺点是需要重启整个docker服务,如果在同一个宿主机上运行着多个容器服务的话,就会影响其他容器服务。

方法三:利用docker commit新构镜像

    docker commit:把一个容器的文件改动和配置信息commit到一个新的镜像。这个在测试的时候会非常有用,把容器所有的文件改动和配置信息导入成一个新的docker镜像,然后用这个新的镜像重起一个容器,这对之前的容器不会有任何影响。

1、停止docker容器

docker stop container01

2、commit该docker容器

docker commit container01 new_image:tag

3、用前一步新生成的镜像重新起一个容器

docker run --name container02 -p 80:80 new_image:tag

    优缺点:这种方式的优点是不会影响统一宿主机上的其他容器,缺点是管理起来显得比较乱,没有第二种方法那么直观。

总结

到此这篇关于运行中docker容器端口映射如何修改的文章就介绍到这了,更多相关运行中docker容器端口映射修改内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker部署RabbitMQ的实现方法(图文并茂)

    Docker部署RabbitMQ的实现方法(图文并茂)

    本文详细介绍了如何使用Docker部署RabbitMQ的步骤,包括拉取RabbitMQ镜像,创建与授权文件夹,创建RabbitMQ容器,查看启动日志,访问控制台和登录等,全程详细的参数解释和操作步骤,让Docker部署RabbitMQ变得简单易行
    2024-10-10
  • 使用Docker部署SpringBoot项目的实现方法

    使用Docker部署SpringBoot项目的实现方法

    这篇文章主要介绍了使用Docker部署SpringBoot项目的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • docker安装redis挂载容器卷同时开启持久化

    docker安装redis挂载容器卷同时开启持久化

    本文主要介绍了docker安装redis挂载容器卷同时开启持久化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • IDEA远程连接Docker的流程步骤

    IDEA远程连接Docker的流程步骤

    这篇文章主要介绍了IDEA远程连接Docker的流程步骤,文中通过代码示例给大家介绍的非常详细,对大家学习IDEA远程连接Docker有一定的帮助,需要的朋友可以参考下
    2024-10-10
  • Dockerfile中multi-stage(多阶段构建)详解

    Dockerfile中multi-stage(多阶段构建)详解

    在2017年5月3日即将发行的 Docker 17.05.0-ce 中,Docker 官方提供了简便的多阶段构建 (multi-stage build) 方案,下面这篇文章主要给大家介绍了关于Dockerfile中multi-stage(多阶段构建)的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-03-03
  • 解决docker run后容器出现Exited (0)情况的问题

    解决docker run后容器出现Exited (0)情况的问题

    这篇文章主要介绍了解决docker run后容器出现Exited (0)情况的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker部署kafka遇到的问题及解决

    Docker部署kafka遇到的问题及解决

    在启动容器后,状态显示为“Exited”,日志显示连接ZooKeeper超时,原因是端口不通,通过配置安全组相关端口后重新启动容器,查看日志显示“started”,说明容器启动成功
    2024-09-09
  • Docker Redis 7.2.3 部署方式

    Docker Redis 7.2.3 部署方式

    使用Docker启动Redis时若遇到不断重启的问题,可能是由于配置文件中的“daemonize yes”与Docker的重启策略“--restart=always”发生冲突,本文给大家介绍Docker Redis 7.2.3 部署方式,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • docker运行nginx不生效的解决办法

    docker运行nginx不生效的解决办法

    当docker运行nginx镜像时,设置端口映射,则只有该映射端口起作用,nginx配置的其他端口无效,接下来本文将给大家介绍docker运行nginx不生效的解决办法,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-01-01
  • docker容器非root用户提权的问题解决

    docker容器非root用户提权的问题解决

    本文主要介绍了docker容器非root用户提权的问题解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论