Docker 修改運行中的容器端口映射

如果用docker run啓動容器的時候發現自己忘記指定 -p 進行端口映射了,可以採取如下三種方式來增加端口映射:
1.第一種是最無腦的方式,直接刪除當前容器,然後用原鏡像重新跑一個新的容器。簡單暴力,但是如果是需要配置的東西過多的話,這樣反而會比較麻煩,而且這個時候是新的容器,操作不當,可能丟失某些重要的狀態或者數據。

  1. 用commit的方式把當前容器重新打包成一個新的鏡像,相比於1,好處是不會丟失任何狀態或者是一些中間數據,容器上後來安裝的東西也是存在的。壞處就是會讓這個鏡像變的不是那麼幹淨,引入DockerFile的目的就是爲了解決這種不乾淨鏡像或者是黑盒鏡像問題的。所以說這種方式能堅決問題,但是還是不夠優雅。
  2. 推薦使用第三種,直接去指定路徑修改對應的配置文件

/var/lib/docker/containers/[容器id]/hostconfig.json

在PortBindings裏面追加上這個(如果是別的端口或者別的映射方式請自行調整)

"80/tcp":[{"HostIp":"","HostPort":"80"}]

 

然後重啓docker守護進程。注意在重啓之前 不要進行 docker inspect xxxxx來看配置,我剛剛是出於好奇,在改完配置文件後直接執行那個命令,返現執行後改過的配置文件被恢復了,額...,重啓服務後便可以看到端口映射成功,我的是這樣:

 

這個時候執行docker inspect xxx 之後是可以看到配置中的端口映射的

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章