无法从我的网络访问 docker 上的 Apache

Can't acces apache on docker from my network

我有这个 Dockerfile :

FROM ubuntu:20.04
EXPOSE 80

在容器中安装apache2包后,无法通过网络访问apache的默认页面。另外 docker 在装有 debian 10 的虚拟机中。如果我尝试官方的 apache 映像 (https://hub.docker.com/_/httpd),一切正常,但我想知道为什么手动安装它不起作用。

要从图像构建容器,我使用此命令:

sudo docker run --name ubuntu -p 80:80 -it ubuntu /bin/bash

我在我的虚拟 centos 机器上进行了 运行 完全相同的测试,并且发现工作正常。

我已经使用您的 docker 文件和 运行 使用以下命令安装的 apache 构建映像。

docker build -t ubuntu
docker run --name ubuntu -p 80:80 -it ubuntu /bin/bash

并且在上述命令打开的终端中,我运行下面的命令。

apt-get update
apt-get install apache2
service apache2 start

之后打开另一个 ssh 终端保持当前 运行ning 因为我没有 运行 处于分离模式的 Ubuntu 容器并使用

检查
docker ps -a

发现容器 运行 暴露 0.0.0.0:80 并检查

curl localhost

请确保您没有在 运行ning curl 命令之前停止 docker 容器或在浏览器中点击它,因为它不在分离模式或后台 运行 .