在不重啓動容器的狀況下,容許從外部訪問到容器內部的端口

目前的docker,尚未實現好熱備份,一旦退出容器,即便commit到image裏再啓動那個image,也只不過省了文件狀態恢復的時間,卻不會省下db啓動時分析巨大的數據文件所需的時間。docker

因此有必要,在不退出容器的狀況下,設法讓人經過訪問Docker主機的某個port來訪問到容器裏面的某個port。目前有兩個方法:tcp

  • 在Docker主機裏用iptables加個端口轉發規則。
sudo iptables -A PREROUTING -t nat -p tcp --dport Docker主機port -j DNAT --to 容器ip:容器port
  • 若是是在用VirtualBox裏的docker-machine作Docker主機,那麼還有一個方法是物理主機上加上個路由使得可以直接訪問到容器的ip。
sudo route -n add 容器ip/32 Docker主機ip

這時Docker主機ip是指docker-machine ip default的結果。這樣一來,能夠直接訪問容器ip:容器port了。.net

都作過實驗,具體的在Docker啓動容器時的port公開方式,破除一些含糊的地方code

相關文章
相關標籤/搜索