如何更改“docker create volume”命令的默认位置?

新手上路,请多包涵

通过卷 API 创建卷时,即容器卷模式现在不一定是最佳实践:

 # docker volume inspect test-data
[
    {
        "Name": "test-data",
        "Driver": "local",
        "Mountpoint": "/var/lib/docker/volumes/test-data/_data"
    }
]

例如,我想在 /data 中存在 docker 卷(安装在不同的物理卷中)。

这不可能与符号链接有关,可能与绑定挂载有关,但我想知道 Docker 中是否有一些配置可以更改每个单独卷的默认位置。

原文由 dukeofgaming 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 967
2 个回答

您可以通过更改名为 --data-root启动参数 之一来更改 Docker 存储其文件(包括卷)的位置。

如果您使用 systemd 进行服务管理,该文件通常位于 /lib/systemd/system/docker.service 。像这样编辑文件:

 # Old - taken from the generated docker.service file in Ubuntu 16.04's docker.io package
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

# New
ExecStart=/usr/bin/dockerd --data-root /new_location/ -H fd:// $DOCKER_OPTS

或者,您可以编辑默认为 /etc/docker/daemon.json 的 Docker 守护程序配置文件。

重新启动 Docker 守护程序,您的卷将位于 /new_location/volumes/{volume_name}/_data

注意:在生产和本地都要小心!您还必须将现有数据从 /var/lib/docker/ 移动到新位置,以便 docker install 按预期工作。

如果您希望特定文件夹位于特定位置,则可以使用新位置的符号链接。

原文由 Hugo R 发布,翻译遵循 CC BY-SA 4.0 许可协议

2017:在 17.05.0-ce (2017-05-04) 中, PR 28696 弃用 --graph 支持标志或 --data-root提交 1ecaed0

名称“ graph ”是很久以前的遗留术语,当时默认位置有一个目录 /var/lib/docker/graph

但是,该标志将指示“ graph ”目录的父目录的路径,该目录不仅包含图像数据,还包含卷、容器和网络的数据。

在最新版本的 docker 中,该目录还包含 swarm 集群状态和节点证书。

issue 5922PR 5978 中,文档已更新。

示例

 ExecStart=/usr/bin/dockerd -H fd:// --data-root=/mnt/ssd/lib/docker


2016 年(现已弃用)

我只知道一个 docker 选项来更改 /var/lib/docker 本身,而不是它的子文件夹(它的一部分 由 docker daemon storage driver 使用

请参阅 docker 守护进程“杂项选项”

Docker 支持 Docker 数据目录 ( /var/lib/docker ) 和 /var/lib/docker/tmp 的软链接。

DOCKER_TMPDIR数据 目录可以这样设置:

 DOCKER_TMPDIR=/mnt/disk2/tmp /usr/local/bin/docker daemon -D -g /var/lib/docker -H unix:// > /var/lib/docker-machine/docker.log 2>&1
# or
export DOCKER_TMPDIR=/mnt/disk2/tmp
/usr/local/bin/docker daemon -D -g /var/lib/docker -H unix:// > /var/lib/docker-machine/docker.log

正如“ docker 映像存储在主机上的什么位置? ”中所述(这也适用于容器/卷):

/var/lib/docker 目录的内容取决于 Docker 用于存储的驱动程序

原文由 VonC 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进