Docker不公开端口

时间:2019-07-24 19:54:23

标签: php docker docker-compose dockerfile laravel-artisan

我有这个docker-compose文件:

    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”并正确执行后,

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

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

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

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

CMD [ "php", "artisan", "serve", "--host", "0.0.0.0"]

为什么没有用?

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

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

答案 1 :(得分:0)

我认为您的Dockerfile应该添加EXPOSE
让我们在Dockerfile中添加以下行:
EXPOSE 8000 9000