Docker化的Apache服务器不公开端口80

我正在尝试在Docker容器中运行React应用程序。 我的应用程序映像是使用以下Dockerfile构build的:

Dockerfile

FROM node:latest LABEL autor="Ed de Almeida" RUN apt-get update RUN apt-get install -y apache2 RUN mkdir /tmp/myapp COPY . /tmp/myapp RUN cd /tmp/myapp && npm install RUN cd /tmp/myapp && npm run build RUN cd /tmp/myapp/build && cp -Rvf * /var/www/html RUN cd /var/www && chown -Rvf www-data:www-data html/ EXPOSE 80 ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 ENV APACHE_LOCK_DIR /var/lock/apache2 ENV APACHE_PID_FILE /var/run/apache2.pid CMD /usr/sbin/apache2ctl -D FOREGROUND 

如您所见,我创build了一个生产版本,将其复制到Apache服务器的标准目录,然后运行Apache服务器。 我甚至暴露了80端口,Apache的默认端口。

我正在创build图像

 docker build -t myimage . 

并运行容器

 docker run -d -p 80:80 --name myapp myimage 

我可能错过了一些东西,因为我是Docker的新手,因为容器在那里,启动并运行,但是当我将浏览器指向http:// localhost时,我什么都没有。

我进入了容器

 docker exec -it myapp bash 

而且它的应用程序运行良好。

任何提示?

在Windows上运行时,Docker将运行在后台运行的虚拟机上。 因此,您需要连接到此虚拟机而不是本地主机。

您可以运行以下命令获取机器ip:

 docker-machine ip default 

这会给你机器的IP地址,你可以使用它从浏览器进行连接。