【docker】追加docker容器端口映射的方法


docker run可以指定端口映射,但是容器一旦生成,就沒有一個命令可以直接修改。通常間接的辦法是,保存鏡像,再創建一個新的容器,在創建時指定新的端口映射。

但這樣太麻煩了。現在有新方案來解決掉:

操作步驟:

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"
         } 
     ]
 }

 

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"
         }
     ],

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM