docker容器啟動后怎么修改端口映射


docker容器啟動后怎么修改端口映射?在docker run創建並運行容器的時候,可以通過-p指定端口映射規則。但是,也會遇到剛開始忘記設置端口映射或者設置錯了需要修改的情況。當docker start運行容器后,並沒有提供一個-p選項或設置,讓你修改指定端口映射規則。

通常間接的辦法是,保存鏡像,再創建一個新的容器,在創建時指定新的端口映射。

方法一:刪除原有容器,重新建新容器

這個解決方案最為簡單,把原來的容器刪掉,重新建一個。當然這次不要忘記加上端口映射。優點是簡單快捷,在測試環境使用較多。缺點是如果是數據庫鏡像,那重新建一個又要重新配置一次,就比較麻煩了。

 

方法二:利用docker commit新構鏡像

docker commit:把一個容器的文件改動和配置信息commit到一個新的鏡像。這個在測試的時候會非常有用,把容器所有的文件改動和配置信息導入成一個新的docker鏡像,然后用這個新的鏡像重起一個容器,這對之前的容器不會有任何影響。

1、停止docker容器

docker stop container01

2、commit該docker容器

docker commit container01 new_image:tag

3、用前一步新生成的鏡像重新起一個容器

docker run --name container02 -p 80:80 new_image:tag

這種方式的優點是不會影響統一宿主機上的其他容器,缺點是管理起來顯得比較亂。

 

方法三:修改文件端口,重啟docker服務

1、停止容器(docker stop d00254ce3af7)

2、停止docker服務(systemctl stop docker)

3、修改這個容器的hostconfig.json文件中的端口(如果config.v2.json里面也記錄了端口,也要修改)

cd /var/lib/docker/containers/d00254ce3af7* #這里是CONTAINER ID

vim hostconfig.json
如果之前沒有端口映射, 應該有這樣的一段:
"PortBindings":{}

增加一個映射, 這樣寫:
"PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"60000"}]}
前一個數字是容器端口, 后一個是宿主機端口。將宿主機的60000端口映射到容器的8080端口
而修改現有端口映射更簡單, 把端口號改掉就行。

4、啟動docker服務(systemctl start docker)

5、啟動容器(docker start d00254ce3af7)


免責聲明!

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



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