在已运行的docker中增加映射端口和映射目录

admin
2023-02-06 / 0 评论 / 1 阅读 / 正在检测是否收录...

转载至 原文

如果已经docker已经运行,但是发现需要新增加一个映射端口,应该如下做:

1 查看容器
docker ps -a

2 停止容器
docker stop f503

3 停止docker服务
systemctl stop docker

4 修改文件
vi /var/lib/docker/containers/{container_id}/hostconfig.json
找到 这个 PortBindings 值。在这个json集合里边追加新端口

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

注:如果是增加映射目录则要修改hostconfig.json中开头的 “Binds”部分

"Binds": ["/webroot/www/go/goweb:/www/go/src/goweb", "/webroot/www/go/diyikaoshi:/www/go/src/diyikaoshi"],

5 启动docker服务
systemctl start docker

6 启动容器
docker start f503

备注: 第4步修改文件要注意,如果config.v2.json里面也记录了端口,也要修改,

原帖地址 : https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-docker-container

config.v2.json文件里边

修改值 : config->ExposedPorts 和 networsettings->Ports , 参看下图

"Config": {
    ....
    "ExposedPorts": {
        "80/tcp": {},
        "8888/tcp": {}
    },
    ....
},
"NetworkSettings": {
....
"Ports": {
     "80/tcp": [
         {
             "HostIp": "",
             "HostPort": "80"
         }
     ],

lds7i4t2.png

0

评论 (0)

取消