在我的Docker环境中,我必须始终运行命令来手动创建卷,例如docker volume create --name= …我想要一种可以通过脚本 shell 加快此过程的方法,该脚本 shell 可以帮助我立即运行。
如果我能看到一个可行的解决方案,那就好了,因为我要手动创建许多卷 (本文系转载)
但是还有个问题:如果如果mysql+wordpress中没有这个卷为什么会导致Mysql容器起不了
最佳答案
一种可能的解决方案是使用 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



