3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
這就是我要做的:
提交活動(dòng)容器。
在端口打開的情況下,使用新映像再次運(yùn)行容器(我建議安裝共享卷并同時(shí)打開ssh端口)
sudo docker ps
sudo docker commit <containerid> <foo/live>
sudo docker run -i -p 22 -p 8000:80 -m /data:/data -t <foo/live> /bin/bash

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
雖然您無法公開現(xiàn)有容器的新端口,但是您可以在同一Docker網(wǎng)絡(luò)中啟動(dòng)一個(gè)新容器,并將其轉(zhuǎn)發(fā)到原始容器。
# docker run \
--rm \
-p $PORT:1234 \
verb/socat \
TCP-LISTEN:1234,fork \
TCP-CONNECT:$TARGET_CONTAINER_IP:$TARGET_CONTAINER_PORT
工作的例子
啟動(dòng)一個(gè)偵聽端口80的Web服務(wù),但不公開其內(nèi)部端口80(哎呀?。?/p>
# docker run -ti mkodockx/docker-pastebin # Forgot to expose PORT 80!
找到其Docker網(wǎng)絡(luò)IP:
# docker inspect 63256f72142a | grep IPAddress
"IPAddress": "172.17.0.2",
verb/socat在端口8080暴露的情況下啟動(dòng),并使其將TCP流量轉(zhuǎn)發(fā)到該IP的端口80:
# docker run --rm -p 8080:1234 verb/socat TCP-LISTEN:1234,fork TCP-CONNECT:172.17.0.2:80
現(xiàn)在,您可以訪問http:// localhost:8080 /上的pastebin ,您的請(qǐng)求將socat:1234轉(zhuǎn)發(fā)給pastebin:80,并將其轉(zhuǎn)發(fā)到,并且響應(yīng)的路徑相反。
- 3 回答
- 0 關(guān)注
- 563 瀏覽
添加回答
舉報(bào)