ssd*_*der 11 server lxc docker
如何更改 docker 保存容器的 Docker 数据目录(或 lxc 保存容器的位置)?我的服务器中有一个 ssd 和一个硬盘驱动器,我希望容器可以保存在硬盘驱动器上。谢谢
Con*_*eca 11
我相信在本指南中您会得到很好的解释。
您可以在启动 Docker 守护程序时使用 -g 选项更改 Docker 的存储基本目录(容器和图像所在的位置)。
Ubuntu/Debian:
/etc/default/docker
使用以下-g
选项编辑您的文件:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
Fedora/Centos:编辑
/etc/sysconfig/docker
,并-g
在 other_args 变量中添加选项:例如。other_args="-g /var/lib/testdir"
. 如果有多个选项,请确保将它们括在“”中。重启后,(service docker restart) Docker 应该使用新目录。使用符号链接是另一种更改图像存储的方法。
注意 - 这些步骤取决于您当前的 /var/lib/docker 是一个实际目录(不是指向另一个位置的符号链接)。
1)停止泊坞窗:
service docker stop
。验证没有 docker 进程正在运行 ps faux2)仔细检查docker确实没有运行。查看当前docker目录:ls
/var/lib/docker/
2b) 做一个备份 -
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz
3) 将
/var/lib/docker
目录移动到新分区:mv /var/lib/docker /mnt/pd0/docker
4)制作符号链接:
ln -s /mnt/pd0/docker /var/lib/docker
5) 查看目录结构以确保它看起来像 mv 之前的样子:(
ls /var/lib/docker/
注意尾部斜杠6)启动docker备份
service docker start
7)重启你的容器解决符号链接)
Mat*_*ttK 11
在 Ubuntu 上更新的 Docker 版本中,您将/etc/default/daemon.json
像这样编辑:
{
"data-root": "/new/location"
}
Run Code Online (Sandbox Code Playgroud)
扩展@MattK的答案:
有关控制 Docker 守护进程的 Docker 文档建议采用与平台无关的方法来执行此操作:
编辑 /etc/docker/daemon.json 文件(如果尚不存在则创建它)以包含该行
{
"data-root": "/mnt/docker-data",
(...)
}
Run Code Online (Sandbox Code Playgroud)
where/mnt/docker-data
是您希望 docker 映像和容器所在的目录。
然后
sudo systemctl restart docker
Run Code Online (Sandbox Code Playgroud)
您可以通过运行来检查它是否有效
docker info
Run Code Online (Sandbox Code Playgroud)
并查找以 开头的行的内容Docker Root Dir:
。
另请参阅/sf/answers/3515236651/和https://unix.stackexchange.com/q/452368/36043。
请注意,/sf/answers/4764326521/建议,如果您通过 Snap 安装 Docker,则应该daemon.json
在/var/snap/docker/current/config/daemon.json
.
归档时间: |
|
查看次数: |
23431 次 |
最近记录: |