我有一個服務器偵聽 docker 容器內的埠 6000,并且我在 dockerfile 中公開了埠 6000:
FROM rust:latest
WORKDIR /usr/src/server
COPY . .
RUN cargo install --path .
EXPOSE 6000
RUN cargo run
然后使用以下命令運行它:
docker build -t server
docker run --rm -it -p 6000:6000 server
然后我在另一個容器中有一個客戶端試圖在埠 6000 建立 tcp 連接,但它無法連接。當它們都不是在容器中運行時,它們可以連接沒有問題,但是嘗試使用 docker 會導致問題。我是否必須對我的客戶端容器做一些事情才能連接到它自己的容器之外的埠 6000?我認為這可能是一個非常簡單的問題,我只是 docker 新手,因此我們將不勝感激。
uj5u.com熱心網友回復:
該RUN命令是構建時執行,我認為您正在尋找 CMD。EXPOSE 也不是必需的,它僅用于檔案目的。最后,在嘗試從客戶端訪問容器之前,您需要檢查容器是否正在運行。docker ps -a啟動服務器后執行a并查看容器狀態。如果它沒有運行,您可以使用docker logs <container name / hash>. 如果您有任何疑問,請告訴我。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/340965.html
標籤:码头工人
上一篇:對3Dnumpy陣列的第一維求和
