启动我的 docker 容器时,我运行以下命令:
docker run -d \
--name metadata-service00 \
-p 8080:8084 \
-v ./FilesToReplace/LogBack/logback.xml:/app/conf/logback.xml \
[docker image]:build-897
它工作完美。
但是,当我运行以下 dockercompose 时:
version: '3'
services:
activemq:
image: [image 2]]:build-31
ports:
- "8161:8161"
- "61616:61616"
- "1883:1883"
networks:
- activemq_metadata_network
metadata-service:
image: [image 1]]:build-897
container_name: metadata-service00
ports:
- "8080:8084"
volumes:
- ./FilesToReplace/LogBack/logback.xml:/app/conf/logback.xml
networks:
activemq_metadata_network:
driver: bridge
我收到以下错误:
Error response from daemon: error while mounting volume '/var/lib/docker/volumes/untitledfolder3_config_volume/_data': failed to mount local volume: mount /host_mnt/Users/[user name]/Desktop/untitled folder 3/FilesToReplace/LogBack/logback.xml:/var/lib/docker/volumes/untitledfolder3_config_volume/_data, flags: 0x1000: no such file or directory
我尝试运行 docker 命令(如上所述),以及: 使用非相对路径 使用 $(pwd) 而不是 ./ 重新启动我的 MacBook
问题原因:
我认为这个问题是因为当您通过 CLI 运行 Docker 命令时,相对路径(如
./FilesToReplace/LogBack/logback.xml
)被解释为相对于您运行 Docker 命令的当前工作目录。
相比之下,在 Docker Compose 中,docker-compose.yml 文件中的相对路径是相对于该 docker-compose.yml 文件的位置进行解释的。
解决方案:
我建议修改 docker-compose.yml 文件中的卷路径,以正确指向相对于 docker-compose.yml 文件位置的 logback.xml 文件。