首页 > 其他分享 >修改运行中的docker容器的端口映射的三种方式

修改运行中的docker容器的端口映射的三种方式

时间:2023-11-10 11:38:40浏览次数:39  
标签:容器 修改 commit 镜像 docker 端口映射

前言

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


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

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

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


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

今天我需要新增一个端口,就是通过这个方式处理的,亲测有效。

1、首先关闭docker服务

systemctl stop docker

2、关闭之后,找到容器的配置文件路径,通常都是安装在这个路径下方

cd /var/lib/docker/containers

3、然后我们在ls查看一下容器,找我们想要修改的容器ID

修改运行中的docker容器的端口映射的三种方式_重启

4、进入容器对应ID修改容器中的 hostconfig.json 文件

docker stop 容器
vi 容器ID hostconfig.json

修改运行中的docker容器的端口映射的三种方式_端口映射_02

如上图,HostPort对应的是映射到宿主机的端口3306按需修改端口。

5、全部弄好之后,启动容器

systemctl start 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

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


标签:容器,修改,commit,镜像,docker,端口映射
From: https://blog.51cto.com/u_16228006/8293840

相关文章

  • docker安装es8.11
    一、安装esdocker拉取要指定版本标签,不能用lastest,官方文档目前最新是8.11,就决定安装这个版本的,主要是注意改下配置文件#高版本安装Kibana的时候需要和ElasticSearch在同一网段内dockernetworkcreatees-net#给映射文件夹授权chmod-R775/data/es#单节点模式,9200端口(......
  • 容器,镜像和仓库关系及命令
    前言因软考高级的系统分析师考试中涉及到很多容器相关的知识,所以决定好好整理一下这部分的内容,加深理解!概念1.镜像:一个只读的文件和文件夹组合(静态的可读文件),是容器运行的基础,包含容器运行所需要的基础文件和配置信息(来源:自行制作,镜像仓库拉取dockerhub)2.容器:镜像的运行实体,......
  • docker在centos7下的安装
    1.安装/升级Docker客户端#step1:安装必要的一些系统工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#Step2:添加软件源信息sudoyum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#Step3:更......
  • Docker
    Docker发展史(1)物理机时代:多个应用程序运行在一台机器上(2)虚拟机时代:一台物理机器安装多个虚拟机(VM),一个虚拟机运行多个程序(3)容器化时代:一台物理机安装多个容器实例(container),一个容器运行多个程序安装先准备一个mysql容器用于复制配置文件,配置好之后把其删除再创建一......
  • Docker安装并使用Mysql(可用详细)
    Docker安装并使用Mysql目录  一、Docker安装Mysql    1、启动Docker    2、查询mysql    3、安装mysql      1.默认拉取最新版本mysql      2.拉取指定版本mysql_5.7    4、查看镜像    5、本地创建挂载目录-......
  • 【腾讯云|云原生】自定制轻量化表单Docker快速部署
    ......
  • docker pull timeout问题
    背景最近在用docker搭个开发环境,参照的是之前记录的那个笔记:Docker相关发现在拉取镜像的时候有点问题,即使用如下命令dockerpullubuntu:18.04报错: “net/http:TLShandshaketimeout”这个主要是因为docker默认镜像拉取地址为国外仓库,会存在网络上的各种问题,你懂的解决只需要......
  • 使用docker调试和部署pwn题
    目录使用docker调试和部署pwn题0x0前言0x1调试环境0x2出题模板0x3使用技巧使用docker调试和部署pwn题使用docker快速部署不同架构、不同版本的调试环境。给出docker环境下pwn题部署模板。0x0前言关于docker的基础概念不做过多的介绍。可以到Docker:Accelerated,Conta......
  • docker run 容器启动后,想要新增端口映射和设置自动重启的方式
    关于新增自动重启(新版本docker支持,老版本不支持,请看第二种方式)一。要在已经运行的Docker容器中增加自动重启的选项,你可以使用dockerupdate命令来更新容器的配置。具体步骤如下:首先,使用dockerps命令列出所有正在运行的容器,并找到你想要设置自动重启的容器的CONTAINER......
  • k8s通过sidecar模式收集pod的容器日志至ELK
    架构:已完成的部署1、ES集群及kibana部署 https://blog.51cto.com/yht1990/60809812、kafaka+zookeeper集群 https://blog.51cto.com/yht1990/6081518准备sidecar镜像(filebeat)找一台服务器打镜像[root@yw-testfilebeat]#catDockerfileFROMdocker.elastic.co/beats/f......