發表文章

目前顯示的是 8月, 2019的文章

如何動態新增執行中的docker container對外的port

圖片
How to expose port on a running container? 如果你已經建立了一個docker container,並且成功運行中,但需要臨時增加對外的port這時候又不想將container停下來的時候,可以直接修改docker host的網路設定達到此目的。 注意:以下提供的修改方法,並不會影響container本身的設定,當docker host或是docer 重新啟動後,設定值就會還原。 假設你開啟了一個Web server的container但卻忘記要開啟 HTTP port,這時候除了透過 docker commit方式還可以動態新增對外的port,可以參照下列的步驟。 這邊的實作是針對運行在Linux上的docker所建立出的container來示範。 Step 1: 取得目標container的IP位址 # docker inspect <your container name> (假設你的container的IP是172.18.0.3) Step 2: 設定iptables # iptables -t nat -A DOCKER -p tcp --dport 80 -j DNAT --to-destination 172.18.0.3:80 # iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source 172.18.0.3 --destination 172.18.0.3 --dport 80 #iptables -A DOCKER -j ACCEPT -p tcp --destination 172.18.0.3 --dport 80 Step 3: 進行HTTP連線測試,觀察是否可以連到該container的Web服務。