我在一个服务器上运行了一些带有卷的容器。我所有的卷都在/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
? - 或者,我是否可以将卷移动到另一个位置而不丢失数据?
4条答案
按热度按时间j2datikz1#
Docker守护程序的这一部分是可配置的。最佳实践是更改数据文件夹;这可以通过操作系统级别的Linux命令(如符号链接)来完成......我认为最好实际配置Docker守护进程,将数据存储在其他地方!
您可以通过编辑Docker命令行(例如,启动Docker守护进程的systemd脚本)或更改
/etc/docker/daemon.json
来完成此操作。该文件应包含以下内容:
如果你添加了一个新的硬盘驱动器,分区,或者挂载点,你可以在这里添加它,docker会把它的数据存储在那里。
bxjv4tth2#
我降落在这里,因为我有非常相同的问题。即使一些消息来源建议你可以这样做的符号链接,这将导致各种问题。
根据操作系统和Docker版本,我有格式错误的图像,奇怪的错误或Docker守护进程拒绝启动。
Here是一个解决方案,但它似乎在不同版本之间有所不同。对我来说,解决方案是:
开放
把这条线改一下
致:
7qhs6swi3#
我解决了它创建一个符号链接到一个更大的分区:
/scratch/docker_ meta是我在一个更大的分区中的文件夹。
cdmah0mi4#
执行绑定挂载。
例如,将
/docker/volumes
移动到/mnt/large
。将行追加到
/etc/fstab
中。然后。
如果您使用的是非根Docker,请不要首先忘记
/mnt/large
的chown
和chmod
。