docker volume自定义挂载点

Ama*_*har 15 docker docker-compose

我是Docker的新手,我正在玩弄docker volume.我想指定docker volume存储数据的位置.就像-v我们执行时提供选项一样docker run.Ex : -v /somefolder/:/var/somefolder

我们如何在创建时设置自定义Mountpointdocker volume.我没有在docs上找到任何选项.

当我检查音量时

[                                                                                        
    {                                                                                    
        "Name": "sampleproject_mysql_data",                                              
        "Driver": "local",                                                               
        "Mountpoint": "/mnt/sda1/var/lib/docker/volumes/sampleproject_mysql_data/_data", 
        "Labels": null,                                                                  
        "Scope": "local"                                                                 
    }                                                                                    
]   
Run Code Online (Sandbox Code Playgroud)

我得到了类似的东西.

有没有办法我们可以设置自定义Mountpoint.通过docker volume命令还是通过docker-compose.yml

BMi*_*tch 29

如果你需要一个指向主机文件系统位置的命名卷(由于你可以进行主机挂载,这有点重新发明轮子,但似乎有很多人要求它),那就是本地持久文件系统驱动程序.这包含在Docker的插件列表中.


更新:还可以使用默认本地卷驱动程序将具有命名卷的绑定装载到主机上的任何目录.这允许您利用主机卷中缺少的命名卷的自动初始化,但有一个缺点,即如果缺少主机目录,则docker不会创建主机目录(而是卷安装失败).您可以通过以下几种方法创建此命名卷:

  # create the volume in advance
  $ docker volume create --driver local \
      --opt type=none \
      --opt device=/home/user/test \
      --opt o=bind \
      test_vol

  # create on the fly with --mount
  $ docker run -it --rm \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/home/user/test \
    foo

  # inside a docker-compose file
  ...
  volumes:
    bind-test:
      driver: local
      driver_opts:
        type: none
        o: bind
        device: /home/user/test
  ...
Run Code Online (Sandbox Code Playgroud)

  • 绑定安装如何工作?创建卷后(在 docker-compose 场景中),我仍然在 /var/lib/docker/volumes 中看到它们,尽管其中现在有一个 opts.json 文件,其中包含我在 compose 文件中指定的选项。卷中 _data 文件夹中的文件似乎镜像了我在选项中指定的文件。`/home/user/test` 是否安装在 `bind-test/_data` 中? (8认同)