gpt4 book ai didi

docker - Docker-Compose 共享卷的相对路径

转载 作者:行者123 更新时间:2023-12-02 17:29:21 25 4
gpt4 key购买 nike

好像this question has already been asked by another poster ,但没有答案。我有关于此事的更多信息,所以我重新问了同样的问题——但有很多额外的 Material 。

我在 Windows 10 上运行 Docker。我将 Docker 配置为使用 Linux 容器(不是 Windows 容器)。我将 C 驱动器配置为共享驱动器。

问题

我有以下 docker-compose 文件,名为 wp.yml :

version: '3.2'

services:
db:
image: mysql:5.7
volumes:
- type: volume
source: wp_dbA
target: /var/lib/mysql
restart: always

volumes:
wp_dbA:
driver_opts:
type: none
device: ./wp-db
o: bind

我执行如下:
c:\repos\wpsand\wpA> docker-compose -f wp.yml up -d

我收到以下错误:

ERROR: for wpa_db_1 Cannot create container for service db: error while mounting volume with options: type='none' device='./wp-db' o='bind': no such file or directory

ERROR: for db Cannot create container for service db: error while mounting volume with options: type='none' device='./wp-db' o='bind': no such file or directory ERROR: Encountered errors while bringing up the project.



尽管有消息,文件夹 wp-db已经存在,位于此处:
c:/repos/wpsand/wpA/wp-db

线索...

尽管有上述错误,检查 docker volume ls揭示该卷 wpa_wp_dbA是新创建的。

线索#1

如果我更改共享卷 device使用绝对路径(例如 /c/repos/wpsand/wpA ),然后再次运行......我遇到了同样的问题。 然而 ,错误信息仍然是相对路径为 ./wp-db的设备找不到。

显然是重用了名为 wp_dbA 的共享卷导致任何新指定的路径被忽略。原 ./wp-db是它将尝试使用的内容。

线索#2

如果我恢复到相对路径,但将共享卷的名称更改为“wp_dbB”,我仍然会遇到相同的错误。

线索#3

这结合了上面的#1 和#2。如果我发明一个新的共享卷名,并使用绝对路径,它就可以工作!我的容器已成功启动。很遗憾,
我不再使用我想要的相对路径。

线索#4

现在我的容器可以工作了,我 docker-compose down并再次更改 docker-compose 文件。我把相对路径放回去,然后“组合起来”。 有用!

结论?

看起来相对路径根本不起作用。但是我一直看到 docker-compose 文件使用相同的共享卷相对路径表示法在线发布。也许它适用于 Docker,但不适用于 Windows 上的 Docker?

任何人都可以建议解决方法吗?

更新!

我找到了 this SO post这几乎有一个相对路径的解决方法。我更新了我的撰写文件以使用 ${PWD}符号,并从我的 Git Bash shell 启动它。现在我收到了这个错误:
$ docker-compose up -d
Creating wpa_db_1 ... error
Creating wpa_db_1 ...

ERROR: for wpa_db_1 Cannot create container for service db: error
while mounting volume with options: type='none'
device='C:/repos/wpsand/wpA/wp-db' o='bind': no such file or directory

ERROR: for db Cannot create container for service db: error while
mounting volume with options: type='none' device='C:/repos/wpsand/wpA/wp-db'
o='bind': no such file or directory
Encountered errors while bringing up the project.

这几乎奏效了!如果只有 ${PWD}已扩展为 Linux 挂载符号 ( /c/repos/wpsand/wpA/wp-db )!

最佳答案

./语法对我来说适用于 win 10 环境。

volumes:
- ./mdata/:/data/db/
- ./logs/:/var/log/mongodb/mongod.log
- ./mongod.cfg:/etc/mongod.conf.orig

关于docker - Docker-Compose 共享卷的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49017666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com