首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编写可以在一个命令中运行Docker卷创建的脚本

如何编写可以在一个命令中运行Docker卷创建的脚本
EN

Stack Overflow用户
提问于 2020-09-24 04:52:57
回答 1查看 43关注 0票数 1

在我的Docker环境中,我总是运行命令来手动创建卷,就像docker volume create --name= ...一样,我希望有一种方法可以通过脚本外壳来加速这个过程,它可以帮助我立即运行。如果我能看到一个可能的解决方案,那就太好了,因为我有很多卷要手动创建

EN

回答 1

Stack Overflow用户

发布于 2020-09-24 05:08:53

一种可能的解决方案是使用docker-compose,并使docker_compose.yml文件只包含volumes而不包含services

代码语言:javascript
运行
复制
version: "3.8"
volumes:
  logvolume01: {}
  logvolume02: {}
  logvolume03: {}

运行时,将相应地创建卷:

代码语言:javascript
运行
复制
$ 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

代码语言:javascript
运行
复制
version: "3.8"
volumes:
  logvolume01:
    name: logvolume01
  logvolume02:
    name: logvolume02
  logvolume03:
    name: logvolume03

运行此修改后的版本可实现:

代码语言:javascript
运行
复制
$ 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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64036051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档