修改 Docker 容器映射的端口

笔记分享 | Note Share

No matter where I am, I will reply you immediately when I see the email.My Email:

echo "YUBzYW1lZ28uY29tCg==" | base64 -d

前言

就运行中的容器而言,对于资源性的修改可以直接使用 docker update 进行改动,但是映射的端口、挂载等不可通过指令修改,虽然可以删除容器再新建一个新的容器,除了此方案还可以修改容器的运行时配置文件参数

方案步骤概览

graph LR
stopContainer[停止容器]
modifyConfiguration[修改运行时配置]
restartDocker[重启docker服务]

stopContainer-->modifyConfiguration
modifyConfiguration-->restartDocker

具体流程说明 | markdown的流程图不能显示O(∩_∩)O~

第一步 : 查看容器的 hash
docker inspect ${容器id} | grep Id
第一步 : 停止运行中的容器
docker stop ${容器id}
第二步 : 修改配置文件

配置文件包括 config.v2.json 与 hostconfig.json

一般情况下,停止了容器后,config.v2.json 配置文件不会有端口映射的配置

  • 配置路径规则

    # config.v2.json
    /var/lib/docker/containers/${容器hash}/config.v2.json
    
    # hostconfig.json
    /var/lib/docker/containers/${容器hash}/hostconfig.json
  • 修改指令

    为了预防全局替换,不建议使用如下的 sed ,我懒、也看了没有其他和端口一样的内容,嗯嗯、就这样

    cd /var/lib/docker/containers/${容器hash}
    sed -i "s/现在映射的宿主机端口/目前映射的宿主机端口/g" config.v2.json
    sed -i "s/现在映射的宿主机端口/目前映射的宿主机端口/g" hostconfig.json
第三步 : 重启 docker 服务
systemctl restart docker

价值源于技术,贡献源于分享 | 笔记分享归档
No matter where I am, I will reply you immediately when I see the email.
My Email: echo "YUBzYW1lZ28uY29tCg==" | base64 -d
个人比较喜欢分享,若有不对的地方非常感谢指出
相互学习、共同进步~

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!