在我的Docker环境中,我总是运行命令来手动创建卷,就像docker volume create --name= ...
一样,我希望有一种方法可以通过脚本外壳来加速这个过程,它可以帮助我立即运行。如果我能看到一个可能的解决方案,那就太好了,因为我有很多卷要手动创建
发布于 2020-09-24 05:08:53
一种可能的解决方案是使用docker-compose
,并使docker_compose.yml文件只包含volumes
而不包含services
version: "3.8"
volumes:
logvolume01: {}
logvolume02: {}
logvolume03: {}
运行时,将相应地创建卷:
$ docker-compose up
Creating volume "docker_logvolume01" with default driver
Creating volume "docker_logvolume02" with default driver
Creating volume "docker_logvolume03" with default driver
Attaching to
$ docker volume ls
DRIVER VOLUME NAME
local docker_logvolume01
local docker_logvolume02
local docker_logvolume03
如果您在创建卷时需要一组更复杂的选项,您可以找到in the documentation。
:默认情况下,当你使用docker-compose
时,卷将以你所在文件夹的名称作为前缀,这是由完成的,因此不同的Docker项目之间不会发生冲突。
这就是为什么在上面的示例中,卷是以docker_
,开头的原因,因为我所在的文件夹名为docker
。
要解决此问题,只需为您的卷提供一个name
:
version: "3.8"
volumes:
logvolume01:
name: logvolume01
logvolume02:
name: logvolume02
logvolume03:
name: logvolume03
运行此修改后的版本可实现:
$ docker-compose up
Creating volume "logvolume01" with default driver
Creating volume "logvolume02" with default driver
Creating volume "logvolume03" with default driver
Attaching to
$ docker volume ls
DRIVER VOLUME NAME
local logvolume01
local logvolume02
local logvolume03
https://stackoverflow.com/questions/64036051
复制相似问题