如何通过浏览器中的Docker通过VirtualBox查看index.php?

如何通过浏览器中的Docker通过VirtualBox查看index.php?,docker,Docker,我正在学习docker并开始测试这个简单的项目,它只包含index.php,但不起作用 我在Windows操作系统上的VirtualBoxCentOS中启动docker 我有index.php <?php echo "Hello world"; 然后构建映像并启动容器: docker build -t php-app . docker run php-app 当我启动容器时,我看到它的ip AH00558: apache2: Could not reliably determine t

我正在学习docker并开始测试这个简单的项目,它只包含index.php,但不起作用

我在Windows操作系统上的VirtualBoxCentOS中启动docker

我有index.php

<?php
echo "Hello world";
然后构建映像并启动容器:

docker build -t php-app .
docker run php-app
当我启动容器时,我看到它的ip

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.4.
在VirtualBox中,我可以使用

curl 172.17.0.4/index.php

但在我的Windows操作系统中,我在浏览器中键入了192.168.1.194 VirtualBox ip,却没有看到index.php。港口显然存在问题。但是,要通过Windows浏览器在Docker中看到index.php,我应该做哪些更改?

您需要公开您的端口

使用以下命令运行容器:

docker run -p 80:80 php-app
通过这种方式,容器的80端口(Apache实例正在侦听的端口)将绑定到主机的虚拟箱vm(在本例中为80端口),您应该能够从外部访问它


您可以在这里的官方页面上阅读docker的所有命令行选项文档:

我在VirtualBox中停止本地nginx,这会中断80端口。然后运行这个命令。现在我可以通过浏览器访问index.php了。谢谢不客气。如果要保持nginx运行,可以为-p标志指定不同的端口。例如,-p8080:80将绑定到主机网络中的端口8080上
docker run -p 80:80 php-app