大佬们请教个问题:
场景:docker for mac, 通过 docker-compose 创建 nginx 容器,
遇到问题( nginx 无法正常运行):
- 若 docker 的 network 为 host 时,容器启动显示正常,但通过 docker ps -a 不显示 PORTS ,应该是假启动,mac 浏览器访问 lcoalhost 时,直接显示无法访问此网站(我理解的根本就没有启动成功,所以打不开页面)
- 若 docker 的 network 为默认的,容器启动显示正常,通过 docker ps -a 也能显示映射的 PORTS, 应该是启动成功,mac 浏览器访问 lcoalhost 时,显示的是 nginx 的错误页面(为啥会这样)
# docker-compse.yml
version: '3'
services:
nginx:
container_name: nginx
image: nginx:latest
ports:
- 80:80
network_mode: host
volumes:
- /opt/nginx/nginx.conf:/etc/nginx/nginx.conf #宿主机文件已创建
- /opt/nginx/conf.d:/etc/nginx/conf.d #宿主机目录已创建
- /opt/nginx/log:/var/log/nginx #宿主机目录已创建
restart: always
$ docker-compose up -d
Creating nginx ... done
docker ps -a # PORTS 是空的
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf103d8c33c6 nginx:latest "/docker-entrypoint.…" 3 seconds ago Up 2 seconds nginx
$ docker logs -f nginx # 为啥提示 read-only file system?
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: error: can not modify /etc/nginx/conf.d/default.conf (read-only file system?)
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Configuration complete; ready for start up