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