У меня возникают проблемы с настройкой Docker в первый раз в Windows с помощью Docker Toolbox. На данный момент работает все, кроме nginx.
Сообщение об ошибке:
ERROR: for web Cannot start service web: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:58: mounting \\\"/c/wamp64/www/cathaypacific_career/ops/nginx/default.conf\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/aufs/mnt/ff9b27a89b26b0e9091264d04d3a475f18469db3cf3be473c005e2d4c7d4b5ef\\\" at \\\"/mnt/sda1/var/lib/docker/aufs/mnt/ff9b27a89b26b0e9091264d04d3a475f18469db3cf3be473c005e2d4c7d4b5ef/etc/nginx/conf.d/default.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
ERROR: Encountered errors while bringing up the project.
Конфигурация Docker-compose:
version: '3'
services:
web:
container_name: web
image: nginx:1.13.3-alpine
networks:
- web_tier
ports:
- 80:80
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- ../:/code
- /code/ops/
depends_on:
- app
app:
container_name: app
build: ./php/
networks:
- web_tier
- app_tier
expose:
- '9000'
volumes:
- ./php/settings.conf:/usr/local/etc/php-fpm.d/settings.conf
- ../:/code
- /code/ops/
working_dir: /code
entrypoint: "/bin/sh -c"
command:
- "php-fpm"
env_file: ../.env
depends_on:
- db
db:
container_name: db
image: mysql:5.6.39
networks:
- app_tier
- db_tier
expose:
- '3306'
ports:
- 3306:3306
volumes:
- db_data:/var/lib/mysql
- ./db:/etc/mysql/conf.d
restart: always
env_file: ../.env
networks:
web_tier:
driver: bridge
app_tier:
driver: bridge
db_tier:
driver: bridge
volumes:
db_data:
Проблема, похоже, связана с Nginx, у которого недоступен default.conf, или приложение считает, что это папка, а не файл.
Я проверил проблему в Интернете, и люди предлагают смонтировать папку C :, поэтому я попытался смонтировать ее на Oracle VirtualBox и повторно запустить команду docker-compose up, но это не решило проблему.
Любая идея?
это слишком долго - но в основном это просто конфигурация nginx (порт прослушивания 80, корень кода ...) server {listen 80 default_server; слушать [::]: 80 default_server; индекс index.php index.html; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; корень / код / общедоступный;
У меня такая же проблема с nginx:alpine в WIndows. Странно то, что вчера вечером он работал нормально, и когда я попытался запустить его сегодня утром, эта ошибка начала появляться.


Я решил ту же проблему с общей папкой с Oracle VirtualBox VM default
Поделитесь папкой проекта и перезапустите виртуальную машину.
Вы можете сделать даже с такой командой, как
docker-machine stop default и docker-machine stop default
Теперь вам нужно использовать общее имя (проект) вместо . в вашем файле создания (docker-compose.yml).
Для вашего случая
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
следует изменить на
- /sharename/nginx/default.conf:/etc/nginx/conf.d/default.conf
Теперь попробуйте с docker-compose up.
У меня это сработало.
вы можете предоставить defalut.conf