fmd*_*lle 13 ubuntu system docker partition docker-compose
我有一台服务器,在其中运行一些带有卷的容器。我的所有卷都在,/var/lib/docker/volumes/因为 docker 正在管理它。我使用 docker-compose 来启动我的容器。
最近,我试图停止我的一个容器,但这是不可能的:
$ docker-compose down
[17849] INTERNAL ERROR: cannot create temporary directory!
Run Code Online (Sandbox Code Playgroud)
因此,我检查了数据如何安装在服务器上:
$ 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
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,/只有 20Go,所以它已满,我无法使用 docker-compose 停止我的容器。
我的问题是:
有一个简单的解决方案可以增加可用空间
/,使用/dev/md4?
或者我可以将卷移动到另一个地方而不丢失数据吗?
Zax*_*ful 18
Docker Daemon 的这一部分是可配置的。最佳做法是更改数据文件夹;这可以通过操作系统级 Linux 命令(如符号链接)来完成...我想说最好实际配置 Docker 守护进程以将数据存储在其他地方!
您可以通过编辑 Docker 命令行(例如启动 Docker 守护进程的 systemd 脚本)或更改/etc/docker/daemon.json.
该文件应包含以下内容:
{
"data-root": "/path/to/your/docker"
}
Run Code Online (Sandbox Code Playgroud)
如果您添加新的硬盘驱动器、分区或挂载点,您可以将其添加到此处,docker 会将其数据存储在那里。
我来到这里是因为我遇到了同样的问题。尽管一些消息来源建议您可以使用符号链接来完成此操作,但这会导致各种问题。
根据操作系统和 Docker 版本,我遇到了格式错误的图像、奇怪的错误或 docker-daemon 拒绝启动。
这是一个解决方案,但似乎不同版本略有不同。对我来说,解决方案是:
打开
/lib/systemd/system/docker.service
Run Code Online (Sandbox Code Playgroud)
并改变这一行
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Run Code Online (Sandbox Code Playgroud)
到:
ExecStart=/usr/bin/dockerd -g /mnt/WHATEVERYOUR/PARTITIONIS/docker --containerd=/run/containerd/containerd.sock
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25554 次 |
| 最近记录: |