前景提要
大佬们请教个问题:
场景: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