gpt4 book ai didi

docker - 如何安装docker的btrfs批量插件?

转载 作者:行者123 更新时间:2023-12-02 18:32:05 24 4
gpt4 key购买 nike

运行命令时:

docker run -it -v some_volume:/abc/xyz --volume-driver=btrfs a_docker_image /bin/bash

终端显示:
docker: Error response from daemon: create some_volume: Error looking up volume plugin btrfs: plugin not found.

====================

但是,如果先创建卷:
docker volume create --opt type=btrfs --name some_volume

它将成功创建卷。现在,如果我尝试运行容器并创建一个新卷:
docker run -it -v some_volume:/abc/xyz --volume-driver=btrfs a_docker_image /bin/bash

它显示(这当然是有道理的,因为已经创建了相同的名称卷):
docker: Error response from daemon: create some_volume: conflict: volume name must be unique.

如果我尝试使用现有卷运行容器:
docker run -it -v some_volume:/abc/xyz a_docker_image /bin/bash

它返回:
docker: Error response from daemon: missing device in volume options.

====================

谁能告诉我如何为docker安装 卷插件btrfs ?除了关于插件的一些介绍(但没有安装方法)之外,我没有发现任何有用的信息。提前致谢。

正如@forevergenin在评论中所建议的,这是我的docker环境:
docker version
Client:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:13:28 2016
OS/Arch: darwin/amd64

Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 19:36:04 2016
OS/Arch: linux/amd64
docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 39
Server Version: 1.11.0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 121
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null host bridge
Kernel Version: 4.1.19-boot2docker
Operating System: Boot2Docker 1.11.0 (TCL 7.0); HEAD : 32ee7e9 - Wed Apr 13 20:06:49 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 996.1 MiB
Name: default
ID: 74TB:OVH5:S3GD:UQUG:ILWG:5NVH:2MSH:5H7R:A5H4:GSLV:2Q6D:ZIR6
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug mode (client): false
Debug mode (server): true
File Descriptors: 15
Goroutines: 32
System Time: 2016-08-15T13:57:03.866016657Z
EventsListeners: 0
Username: thyrlian
Registry: https://index.docker.io/v1/
Labels:
provider=virtualbox

最佳答案

我对docker的btrfs并不陌生,但这是我的理解:

将btrfs用作存储驱动程序意味着docker将在内部将btrfs用于图像和容器(说明here)。具体来说,请看安装细节here:它们使您可以创建btrfs分区并在其上安装/var/lib/docker。之后,当您重新启动Docker守护程序时,docker info应该告诉您“存储驱动程序:btrfs”。

使用btrfs驱动程序,将图像的基础保存为int /var/lib/docker/btrfs/subvolumes,然后对其进行快照(但是我不确定它们将其准确保存在何处)。但这是自动完成的,无需您指定驱动程序(我猜想,当您有多个可以在给定文件系统上运行的驱动程序时,指定驱动程序很有用。但是当/ var / lib / docker是格式化为btrfs。

关于卷,我相信它们不会另存为btrfs子卷。它们似乎是/var/lib/docker/volumes/中的简单文件夹。同样,我可以想象这是docker的正常行为:图像和容器是分层的,但是卷是简单的目录。

至少,这是我观察到的行为:

  • 如果提取图像或创建容器,则会创建btrfs子卷。
  • 我可以简单地使用docker volume create testvol1创建一个卷并将其安装在容器中。但这不是btrfs子卷。

  • 如果要在btrfs子卷中包含卷,那么我认为您可能需要手动创建子卷并将卷直接安装在其中。

    关于docker - 如何安装docker的btrfs批量插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955643/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com