php:7.0-apache
镜像默认监听的端口是80
,而Dockerfile
中使用的EXPOSE
并没有改变这一点。
通常情况下,您没有理由尝试更改容器的默认监听端口,因为容器有自己的IP地址,您不应该遇到端口冲突问题。
端口选择可能会成为主机上的问题,在这方面,您可以选择发布任何未被使用的端口。
如果您只需在docker run命令中交换80
和800
,则可以通过localhost:800
访问Web应用程序。
以下命令将创建一个DNAT规则,从您的主机端口<src>
到容器端口 80
,使得您可以在localhost:<src>
访问Web应用程序。
docker run -p <src>:80 final
编辑回答禁止问题更新:
php:7.0-apache
镜像将在/var/www/html/
下查找index.*
。你的Dockerfile将源代码复制到/var/www/html/public
。
/var/www/html/
下。 - Neo Anderson
FROM
行应该足以复现)。 - Neo Andersonindex.*
文件,因此Apache不知道为localhost:8000/
提供什么内容。 - deceze