簡體   English   中英

無法使用 IP 地址訪問本地 docker 容器

[英]Unable to access local docker container with IP address

我在我的 Mac 系統上本地運行 docker 容器。 我在這篇文章的底部粘貼了 Dockerfile 的內容。 我在圖像中暴露了端口 8888,我想使用 container-ip-address:8888 從我的主機瀏覽器訪問 python 程序。 但是,它沒有連接。 將其映射到本地主機上的端口是可行的,但我不想這樣做。 我該如何解決這個問題? (已經嘗試創建 docker 網絡並將容器作為新網絡的一部分運行 - 沒有骰子)。 任何幫助將非常感激。 Dockerfile 內容 -

FROM python:latest

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY . /usr/src/app

EXPOSE 8888
RUN pip install tornado
CMD ["python", "./api.py" ]

Expose 只是告訴 docker 這個容器將與這個端口一起工作。 它不會 map 它在任何地方。 https://docs.docker.com/engine/reference/builder/#expose

映射是運行容器的代碼的任務。 如果是本地機器,它是 docker。 如果您不docker run docker 中的 map 端口,則無法從 docker 網絡外部訪問容器。 同時您的主機不在 docker 網絡中。 如果您手動創建 docker 網絡,情況相同 - 您的機器無法訪問它的內部部分。

換句話說,你必須選擇你的方式:

  • 使用-p....當您執行 docker 運行(本地開發)
  • 或者如果您使用 docker 作曲家(主要是本地開發),則在 docker 撰寫文件中定義它。 當您在 docker 中運行多個通信系統時,這種方法非常有用。
  • or do it through kubernetes yaml definition file on production if you go into kubernetes with your solution (production with orchestrator/ autoscaler and etc.)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM