【问题标题】:Move docker volume to different partition将 docker 卷移动到不同的分区
【发布时间】:2020-04-08 06:19:54
【问题描述】:

我有一个服务器,我在其中运行一些带有卷的容器。我所有的卷都在/var/lib/docker/volumes/ 中,因为 docker 正在管理它。我使用 docker-compose 来启动我的容器。

最近,我试图停止我的一个容器,但这是不可能的:

$ docker-compose down
[17849] INTERNAL ERROR: cannot create temporary directory!

所以,我检查了数据是如何挂载到服务器上的:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7,8G     0  7,8G   0% /dev
tmpfs           1,6G  1,9M  1,6G   1% /run
/dev/md3         20G   19G     0 100% /
tmpfs           7,9G     0  7,9G   0% /dev/shm
tmpfs           5,0M     0  5,0M   0% /run/lock
tmpfs           7,9G     0  7,9G   0% /sys/fs/cgroup
/dev/md2        487M  147M  311M  33% /boot
/dev/md4        1,8T  1,7G  1,7T   1% /home
tmpfs           1,6G     0  1,6G   0% /run/user/1000

如您所见,/ 只有 20Go,所以它已满,我无法使用 docker-compose 停止我的容器。

我的问题是:

  • 有一个简单的解决方案可以增加 /,使用/dev/md4 ?

  • 或者我可以将卷移动到另一个地方而不会丢失数据吗?

【问题讨论】:

  • 你应该在/var/lib/docker 挂载一个单独的文件系统,这样你的容器存储就不会填满你的根文件系统。这将需要停止 docker 并移动文件。
  • 通过将 /var 移动到另一个分区来解决:serverfault.com/questions/429937/…

标签: docker ubuntu docker-compose system partition


【解决方案1】:

我解决了它创建一个指向更大分区的符号链接:

ln -s /scratch/docker_meta /var/lib/docker

/scratch/docker_meta 是我在更大分区中的文件夹。

【讨论】:

    【解决方案2】:

    我来到这里是因为我遇到了同样的问题。尽管一些消息来源建议您可以使用符号链接来执行此操作,但这会导致各种问题。

    根据操作系统和 Docker 版本,我的图像格式错误、奇怪的错误或 docker-daemon 拒绝启动。

    Here 是一个解决方案,但它似乎因版本而异。对我来说,解决方案是:

    打开

    /lib/systemd/system/docker.service
    

    然后改变这一行

    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    

    到:

    ExecStart=/usr/bin/dockerd -g /mnt/WHATEVERYOUR/PARTITIONIS/docker --containerd=/run/containerd/containerd.sock
    

    【讨论】:

    • 什么是 /mnt ?可以直接写自己的目录吗?
    • 当然可以。将 /mnt/WHATEVERYOUR/PARTITIONIS/docker 替换为您的新路径
    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 2021-02-07
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多