Docker Compose Mac Error: Cannot start service zoo1: Mounts denied:
Docker Compose Mac Error: Cannot start service zoo1: Mounts denied:
当 运行 docker-compose up -d
:
时出现以下错误
% docker-compose up -d
Creating network "kafka-test_default" with the default driver
Creating kafka-test_zoo1_1 ... error
ERROR: for kafka-test_zoo1_1 Cannot start service zoo1: Mounts denied: approving /Users/test/kafka-test/zk-single-kafka-single/zoo1/datalog: file does not exist
ERROR: for zoo1 Cannot start service zoo1: Mounts denied: approving /Users/test/kafka-test/zk-single-kafka-single/zoo1/datalog: file does not exist
ERROR: Encountered errors while bringing up the project.
在我将 Mac 的 Docker 多次更新为 Docker version 20.10.0, build 7287ab3
之前它在昨天工作。 Mac这本书是 运行 Big Sur 11.0.1。
注意:如果 Docker 降级到 19.03.13,它会起作用。但这不是一个好的解决方案。
docker-compose.yml
基于simplesteph/kafka-stack-docker-compose
version: '2.1'
services:
zoo1:
image: zookeeper:3.4.9
hostname: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_PORT: 2181
ZOO_SERVERS: server.1=zoo1:2888:3888
volumes:
- ./zk-single-kafka-single/zoo1/data:/data
- ./zk-single-kafka-single/zoo1/datalog:/datalog
kafka1:
image: confluentinc/cp-kafka:5.5.1
hostname: kafka1
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka1:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 1
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
volumes:
- ./zk-single-kafka-single/kafka1/data:/var/lib/kafka/data
depends_on:
- zoo1version: '2.1'
services:
zoo1:
image: zookeeper:3.4.9
hostname: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_PORT: 2181
ZOO_SERVERS: server.1=zoo1:2888:3888
volumes:
- ./zk-single-kafka-single/zoo1/data:/data
- ./zk-single-kafka-single/zoo1/datalog:/datalog
kafka1:
image: confluentinc/cp-kafka:5.5.1
hostname: kafka1
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka1:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 1
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
volumes:
- ./zk-single-kafka-single/kafka1/data:/var/lib/kafka/data
depends_on:
- zoo1
更新 2020-12-14:
此问题似乎已在 Docker Desktop 3.0.1 for Mac 中得到解决。如果您禁用了 gRPC,您可能希望在更新到 3.0.1 后再次启用它。
上一个答案:
我在更新到 Docker Desktop 3.0.0(针对 Mac)后遇到了这个问题。进入首选项并禁用 实验性功能 -> 使用 gRPC FUSE 进行文件共享后 我又可以使用卷挂载了。
TL;DR:如果您使用的是 Docker 桌面版 3.0.0,升级到 3.0.1 应该没问题。
我在为 Mac 更新到 Docker Desktop 3.0.0 后也遇到了这个问题。 @drewsign 的回答为我解决了这个问题,然后我发现以下资源说明 3.0.0 中存在错误 -> 所以我升级到 3.0.1 并解决了问题!
Github 问题 here
Docker v3.0.1 发行说明here
要强制更新 Docker 桌面应用程序(在 Mac 上),单击顶部工具栏上的鲸鱼图标,然后单击“检查更新”。安装更新后,重新启动 Docker。现在您应该需要关闭“实验性功能 -> 使用 gRPC FUSE 进行文件共享”
当 运行 docker-compose up -d
:
% docker-compose up -d
Creating network "kafka-test_default" with the default driver
Creating kafka-test_zoo1_1 ... error
ERROR: for kafka-test_zoo1_1 Cannot start service zoo1: Mounts denied: approving /Users/test/kafka-test/zk-single-kafka-single/zoo1/datalog: file does not exist
ERROR: for zoo1 Cannot start service zoo1: Mounts denied: approving /Users/test/kafka-test/zk-single-kafka-single/zoo1/datalog: file does not exist
ERROR: Encountered errors while bringing up the project.
在我将 Mac 的 Docker 多次更新为 Docker version 20.10.0, build 7287ab3
之前它在昨天工作。 Mac这本书是 运行 Big Sur 11.0.1。
注意:如果 Docker 降级到 19.03.13,它会起作用。但这不是一个好的解决方案。
docker-compose.yml
基于simplesteph/kafka-stack-docker-compose
version: '2.1'
services:
zoo1:
image: zookeeper:3.4.9
hostname: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_PORT: 2181
ZOO_SERVERS: server.1=zoo1:2888:3888
volumes:
- ./zk-single-kafka-single/zoo1/data:/data
- ./zk-single-kafka-single/zoo1/datalog:/datalog
kafka1:
image: confluentinc/cp-kafka:5.5.1
hostname: kafka1
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka1:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 1
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
volumes:
- ./zk-single-kafka-single/kafka1/data:/var/lib/kafka/data
depends_on:
- zoo1version: '2.1'
services:
zoo1:
image: zookeeper:3.4.9
hostname: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_PORT: 2181
ZOO_SERVERS: server.1=zoo1:2888:3888
volumes:
- ./zk-single-kafka-single/zoo1/data:/data
- ./zk-single-kafka-single/zoo1/datalog:/datalog
kafka1:
image: confluentinc/cp-kafka:5.5.1
hostname: kafka1
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka1:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 1
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
volumes:
- ./zk-single-kafka-single/kafka1/data:/var/lib/kafka/data
depends_on:
- zoo1
更新 2020-12-14:
此问题似乎已在 Docker Desktop 3.0.1 for Mac 中得到解决。如果您禁用了 gRPC,您可能希望在更新到 3.0.1 后再次启用它。
上一个答案:
我在更新到 Docker Desktop 3.0.0(针对 Mac)后遇到了这个问题。进入首选项并禁用 实验性功能 -> 使用 gRPC FUSE 进行文件共享后 我又可以使用卷挂载了。
TL;DR:如果您使用的是 Docker 桌面版 3.0.0,升级到 3.0.1 应该没问题。
我在为 Mac 更新到 Docker Desktop 3.0.0 后也遇到了这个问题。 @drewsign 的回答为我解决了这个问题,然后我发现以下资源说明 3.0.0 中存在错误 -> 所以我升级到 3.0.1 并解决了问题!
Github 问题 here
Docker v3.0.1 发行说明here
要强制更新 Docker 桌面应用程序(在 Mac 上),单击顶部工具栏上的鲸鱼图标,然后单击“检查更新”。安装更新后,重新启动 Docker。现在您应该需要关闭“实验性功能 -> 使用 gRPC FUSE 进行文件共享”