Php Docker不公开端口
我有一个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
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机器已经配置好了。但是谢谢。解决我的问题。