在 docker 容器中启动 Laravel 服务器有点问题

A little problem with starting Laravel server in docker container

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                               NAMES
369caac73fe5   php:7.4.6-apache   "docker-php-entrypoi…"   48 minutes ago   Up 23 minutes   80/tcp, 0.0.0.0:8000->8000/tcp      web_laravel

我已经在 web_laravel docker 中部署了 Laravel 8.x 源代码。 运行 composer updatephp artisan serve.

时我没有收到任何错误
# php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
[Mon Jan  20:01:04 2021] PHP 7.4.6 Development Server (http://127.0.0.1:8000) started

但是,当我在浏览器中访问 192.168.1.xx:8000 时,出现以下错误。

192.168.1.xx refuses to connect

我尝试 ping 192.168.1.xx,它工作正常。但是,在使用 telnet.

时出现以下错误
$ telnet 192.168.1.xx 8000
Trying 192.168.1.xx...
telnet: Unable to connect to remote host: Connection refused

我在 docker 中启动 Laravel 服务器似乎有点问题。有人可以帮助我吗?

您必须指定 运行 您的 laravel 应用程序的位置, 默认情况下它是 127.0.0.1 上的 运行 通过 php artisan serve --host 192.168.1.xx

尝试 运行

已解决:


据我所知,每个docker都有一个IP地址。因此,我必须使用 docker 容器的 IP 地址启动服务器。但是,为了避免 docker 的动态 IP 地址 的错误,我使用 0.0.0.0 而不是 web_laravel docker 的 IP 地址因为 0.0.0.0 表示本地计算机上的所有 IPv4 地址。我使用以下命令。

php artisan serve --host 0.0.0.0