1. 程式人生 > >修改docker容器埠對映的方法

修改docker容器埠對映的方法

大家都知道docker run可以指定埠對映,但是容器一旦生成,就沒有一個命令可以直接修改。通常間接的辦法是,儲存映象,再建立一個新的容器,在建立時指定新的埠對映。

有沒有辦法不儲存映象而直接修改已有的這個容器呢?有。在stackoverflow上面找到答案了,原帖如下

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

我的操作步驟是:

1) 停止容器
2) 停止docker服務(systemctl stop docker)
3) 修改這個容器的hostconfig.json檔案中的埠(原帖有人提到,如果config.v2.json裡面也記錄了埠,也要修改)

cd /var/lib/docker/3b6ef264a040* #這裡是CONTAINER ID
vi hostconfig.json
如果之前沒有埠對映, 應該有這樣的一段:
"PortBindings":{}
增加一個對映, 這樣寫:
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}
前一個數字是容器埠, 後一個是宿主機埠. 
而修改現有埠對映更簡單, 把埠號改掉就行.


4) 啟動docker服務(systemctl start docker)
5) 啟動容器