【问题标题】:How to write a script which can run the creation of Docker volumes in one command如何编写可以在一个命令中运行创建 Docker 卷的脚本
【发布时间】:2023-03-15 17:11:01
【问题描述】:

在我的 Docker 环境中,我总是运行命令来手动创建卷,例如 docker volume create --name= ... 我想要一种使用脚本 shell 来加速这个过程的方法,它可以帮助我立即运行。 如果我能看到一个可能的解决方案会很棒,因为我有很多卷要手动创建

【问题讨论】:

  • 我不会重新发明轮子,我会使用仅由 volumes 组成且没有 services 定义的 docker-compose
  • 问题是 Docker 的东西不是我的,即使在说明中说要手动执行我也无法更改设置,但也许我可以有一些东西来帮助我
  • 您是否安装了docker-compose
  • 是的,我有,当我运行 docker 的东西时,我收到的东西停止要求每次创建卷,卷是 20,所以我写了 20 次命令。你有一个特定的命令可以用 docker compose 运行吗?请显示
  • 你在编写 shell 脚本时遇到了什么麻烦?

标签: docker shell sh


【解决方案1】:

一个可能的解决方案是使用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_ 开头的原因,因为我所在的文件夹名为 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

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多