Bre*_*ias 5 docker docker-compose docker-volume
看来这个问题已经被另一张海报问过,但没有答案.我有关于这个问题的更多信息,所以我重新问了同样的问题 - 但是还有很多额外的材料.
我在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
Run Code Online (Sandbox Code Playgroud)
我按如下方式执行:
c:\repos\wpsand\wpA> docker-compose -f wp.yml up -d
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误:对于wpa_db_1无法为服务db创建容器:使用选项装入卷时出错:type ='none'device ='./ wp-db'o ='bind':没有这样的文件或目录
错误:对于db无法为服务db创建容器:使用选项装入卷时出错:type ='none'device ='./ wp-db'o ='bind':没有这样的文件或目录错误:在启动时遇到错误该项目.
尽管有消息,该文件夹wp-db已经存在,位于此处:
c:/repos/wpsand/wpA/wp-db
Run Code Online (Sandbox Code Playgroud)
尽管存在上述错误,但检查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?
任何人都可以提出解决方案吗?
我发现这个SO帖子几乎有一个相对路径的解决方法.我更新了我的compose文件以使用${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.
Run Code Online (Sandbox Code Playgroud)
那几乎奏效了!如果只${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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2980 次 |
| 最近记录: |