我們知道docker run是可以指定端口映射的,但是容器一旦生成就沒有一個命令可以直接修改。通常間接的辦法是保存鏡像,再創(chuàng)建一個新的容器,在創(chuàng)建時指定新的端口映射。
(推薦教程:docker教程)
那么有什么辦法可以不保存鏡像而直接修改已有的這個容器呢?
具體方法如下:
1) 停止容器
2) 停止docker服務(wù)(systemctl stop docker)
3) 修改這個容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也記錄了端口,也要修改)
cd /var/lib/docker/3b6ef264a040* #這里是CONTAINER ID vi hostconfig.json #如果之前沒有端口映射, 應(yīng)該有這樣的一段: "PortBindings":{} #增加一個映射, 這樣寫: "PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]} #前一個數(shù)字是容器端口, 后一個是宿主機(jī)端口. #而修改現(xiàn)有端口映射更簡單, 把端口號改掉就行.
4) 啟動docker服務(wù)(systemctl start docker)
5) 啟動容器