Can';t从我的网络访问docker上的apache

Can';t从我的网络访问docker上的apache,docker,apache2,Docker,Apache2,我有一个Dockerfile: FROM ubuntu:20.04 EXPOSE 80 在容器中安装apache2包后,我无法从网络访问apache的默认页面。docker也在一个带有debian 10的虚拟机中。如果我尝试使用正式的apache映像(),一切正常,但我想知道为什么手动安装它不起作用 要从图像构建容器,我使用以下命令: sudo docker run --name ubuntu -p 80:80 -it ubuntu /bin/bash 我已经在我的虚拟centos机器上运行

我有一个Dockerfile:

FROM ubuntu:20.04
EXPOSE 80
在容器中安装apache2包后,我无法从网络访问apache的默认页面。docker也在一个带有debian 10的虚拟机中。如果我尝试使用正式的apache映像(),一切正常,但我想知道为什么手动安装它不起作用

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

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

我已经在我的虚拟centos机器上运行了完全相同的测试,并发现可以正常工作

我已经使用dockerfile构建了映像,并使用下面的命令运行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
在上面提到的命令打开的终端中,我运行了下面的命令

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终端,保持当前的运行状态,因为我没有在分离模式下运行Ubuntu容器,并使用了

docker ps -a
并发现容器正在以0.0.0.0:80的速度运行并已检查

curl localhost

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

您所显示的内容都没有安装Apache:您只是在未修改的Ubuntu映像中运行交互式shell。通常,您不会运行base
ubuntu
映像(而是在预装软件的情况下运行自定义映像)或
bash
作为主容器命令(直接运行类似
apachectl-DFOREGROUND
的命令,以使HTTP服务器成为主容器进程)。@DavidMaze是的,很抱歉,我使用的命令都在可接受的应用程序中。问题是我没有运行服务apache2 start,谢谢