簡體   English   中英

Docker for mac - 無法卷曲我的容器

[英]Docker for mac - can't curl my container

為 Mac 17.06.0 運行 docker 我創建了一個 docker 文件,用於創建 Apache 服務器的映像。 注意它暴露了端口 80。

FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y apache2
ADD index.html /var/www/html/
CMD /usr/sbin/apache2ctl -D FOREGROUND
EXPOSE 80 

在 Dockerfile 的同一個文件夾中,我創建了一個簡單的 index.html 文件。
然后我構建並運行它使用

docker build -t webserver .
docker run -d webserver 

我使用了正在運行的容器的 IP 地址

docker inspect [container_name] | grep -i IPAddress

當我卷曲時

curl 172.17.0.2

我得不到答案。

運行 -p 80:80 並在 curl 命令中使用 localhost 時,我確實得到了答案。

 curl localhost

但我想了解為什么我不能卷曲容器 IP。

問題:

  1. 我怎樣才能得到卷發的答案?
  2. 我知道在使用 docker for Mac 時我無法 ping 我的容器( 鏈接)。
    我可以通過 telnet 來驗證端口是否公開嗎?
  3. 我可以 SSH 嗎?

在 Docker for Mac 上,Docker 引擎在一個使用 Hyper-V 的小型虛擬機中運行。 因此,ip 172.17.0.2僅在該 VM 內有效,而在您的主機系統上無效。 請參閱https://docs.docker.com/docker-for-mac/docker-toolbox/#the-docker-for-mac-environment了解更多詳細信息以及與 Docker Machine 等其他 VM 概念的比較。

運行 Docker 容器時,需要將本地端口綁定到容器,如下所示:

docker run -d -p 80:80 webserver

其中第一個80是本地主機上的端口,第二個是暴露的容器上的端口。 僅在dockerfile公開端口不足以從本地主機訪問它。

暫無
暫無

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

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