Php Docker不公开端口

Php Docker不公开端口,php,docker,docker-compose,dockerfile,laravel-artisan,Php,Docker,Docker Compose,Dockerfile,Laravel Artisan,我有一个docker撰写文件: version: '2' services: web: build: . container_name: Fila ports: - 8000:8000 - 9000:9000 这个dockerfile: FROM phpdockerio/php73-fpm:latest WORKDIR /var/www COPY . /var/www/ate

我有一个docker撰写文件:

    version: '2'
services:
    web:
        build: .
        container_name: Fila
        ports:
            - 8000:8000
            - 9000:9000
这个dockerfile:

 FROM phpdockerio/php73-fpm:latest

WORKDIR /var/www


COPY . /var/www/atendimento

WORKDIR /var/www/atendimento

RUN composer install

RUN mv .env.example .env

#RUN node index.js &

RUN php artisan key:generate 

CMD [ "php", "artisan", "serve"  ] 
运行“docker compose up”并无误执行后

当我试图在navigator上访问主机中的localhost:8000时,我得到“连接已重置”

在docker内部,我使用“wget localhost:8000”进行测试,并获得正确的站点。 但是在主机中没有


有人能帮我吗

您需要使用--host标志在aritsan命令上将主机绑定到0.0.0.0

CMD[“php”、“artisan”、“serve”、“主机”、“0.0.0.0”]

为什么它不起作用

在不设置主机的情况下,artisan将服务器绑定到容器localhost。容器localhost和您的计算机localhost不同


设置0.0.0.0将服务器绑定到所有接口,包括主机接口,使其在localhost:8000上可用。

我认为您的Dockerfile应该添加
EXPOSE

让我们在Dockerfile中添加下面的一行:

EXPOSE 8000 9000

使用其他图像作品而不使用“--host 0.0.0”作品。也许有些docker机器已经配置好了。但是谢谢。解决我的问题。