Docker 不暴露端口
Docker doesnt expose Port
我有这个 docker-compose 文件:
version: '2'
services:
web:
build: .
container_name: Fila
ports:
- 8000:8000
- 9000:9000
还有这个 docker 文件:
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 时,我得到 "the connection has been reset"
在 docker 中,我用 "wget localhost:8000" 进行了测试并获得了正确的站点。
但在主机中没有。
有人可以帮助我吗?
您需要使用 --host 标志在 aritsan 命令中将主机绑定到 0.0.0.0。
CMD [ "php", "artisan", "serve", "--host", "0.0.0.0"]
为什么不起作用?
不设置host,artisan会将服务器绑定到容器localhost。容器本地主机和您的机器本地主机不同。
设置 0.0.0.0 会将服务器绑定到所有接口,包括使它在 localhost:8000 可用的主机接口。
我认为你的 Dockerfile 应该添加 EXPOSE
让我们在 Dockerfile 中添加以下一行:
EXPOSE 8000 9000
我有这个 docker-compose 文件:
version: '2'
services:
web:
build: .
container_name: Fila
ports:
- 8000:8000
- 9000:9000
还有这个 docker 文件:
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 时,我得到 "the connection has been reset"
在 docker 中,我用 "wget localhost:8000" 进行了测试并获得了正确的站点。 但在主机中没有。
有人可以帮助我吗?
您需要使用 --host 标志在 aritsan 命令中将主机绑定到 0.0.0.0。
CMD [ "php", "artisan", "serve", "--host", "0.0.0.0"]
为什么不起作用?
不设置host,artisan会将服务器绑定到容器localhost。容器本地主机和您的机器本地主机不同。
设置 0.0.0.0 会将服务器绑定到所有接口,包括使它在 localhost:8000 可用的主机接口。
我认为你的 Dockerfile 应该添加 EXPOSE
让我们在 Dockerfile 中添加以下一行:
EXPOSE 8000 9000