【发布时间】:2021-06-21 14:26:01
【问题描述】:
我正在尝试在 docker 桌面(Windows 版本)上创建一个容器。我的项目包含一些容器。
我需要创建一个容器来运行 MinIO 来模拟 S3 存储桶。我在官方上得到了docker-compose文件。
我的 docker-compose.yml 是这样的:
services:
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
restart: always
ports:
- 5672:5672
- 15672:15672
volumes:
- ./dados:/var/lib/rabbitmq/
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=password
minio1:
image: minio/minio:RELEASE.2021-06-17T00-10-46Z
hostname: minio1
volumes:
- ./dados/minios3/data1-1:/data1
- ./dados/minios3/data1-2:/data2
expose:
- "9000"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
nginx:
image: nginx:1.19.2-alpine
hostname: nginx
volumes:
- ./dados/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
ports:
- 9000:9000
depends_on:
- minio1
唯一的区别是我将卷路径更改为我的目录,脚本的其余部分来自官方文档。
当我运行docker-compose up -d 命令时,所有容器都被创建,除了 Nginx。显示错误。
Creating microservicos_nginx_1 ... error
ERROR: for microservicos_nginx_1 Cannot start service nginx: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60: mounting "/run/desktop/mnt/host/d/Projetos Dev/Microservicos/dados/nginx/nginx.conf" to rootfs at "/var/lib/docker/overlay2/310cee7797b9810694b18473c914d21cdad5422d7c0945f06464163f67d605aa/merged/etc/nginx/nginx.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: for nginx Cannot start service nginx: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60: mounting "/run/desktop/mnt/host/d/Projetos Dev/Microservicos/dados/nginx/nginx.conf" to rootfs at "/var/lib/docker/overlay2/310cee7797b9810694b18473c914d21cdad5422d7c0945f06464163f67d605aa/merged/etc/nginx/nginx.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.yml是:
version: '3.7'
services:
minio1:
image: minio/minio:RELEASE.2021-06-17T00-10-46Z
hostname: minio1
volumes:
- data1-1:/data1
- data1-2:/data2
expose:
- "9000"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
minio2:
image: minio/minio:RELEASE.2021-06-17T00-10-46Z
hostname: minio2
volumes:
- data2-1:/data1
- data2-2:/data2
expose:
- "9000"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
minio3:
image: minio/minio:RELEASE.2021-06-17T00-10-46Z
hostname: minio3
volumes:
- data3-1:/data1
- data3-2:/data2
expose:
- "9000"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
minio4:
image: minio/minio:RELEASE.2021-06-17T00-10-46Z
hostname: minio4
volumes:
- data4-1:/data1
- data4-2:/data2
expose:
- "9000"
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123
command: server http://minio{1...4}/data{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
nginx:
image: nginx:1.19.2-alpine
hostname: nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
ports:
- "9000:9000"
depends_on:
- minio1
- minio2
- minio3
- minio4
有人知道为什么会发生这个错误以及如何解决它吗?
【问题讨论】:
标签: nginx docker-compose minio