admin管理员组文章数量:1130349
在 Armbian 系统上更改 Docker 的默认存储设置(默认存储路径为 /var/lib/docker),通常是为了将容器、镜像等数据存储到其他位置(如挂载到 /ssd 的 SATA 硬盘,以节省 eMMC 空间或提高性能)。以下是详细的中文教程,指导您在 Armbian 上修改 Docker 的默认存储路径,适用于包括网心云 OEC-Turbo 等 ARM 设备。教程假设您已成功安装 Docker,并以 root 权限操作(使用 sudo su 或直接 root 用户)。
前提条件
- Docker 已安装:运行
docker --version确认 Docker 已正常工作。 - 目标存储路径:假设您想将 Docker 数据存储到
/ssd/docker(SATA 硬盘已挂载到/ssd,如之前的教程配置)。 - 磁盘空间:确保目标路径(如
/ssd)有足够空间(建议至少 10GB 可用,运行df -h /ssd检查)。 - 备份:更改存储路径可能导致数据丢失,建议备份现有 Docker 数据(
/var/lib/docker)。 - 权限:确保目标路径对 Docker 服务有读写权限。
步骤 1:停止 Docker 服务
更改存储路径前,必须停止 Docker 服务以避免数据冲突:
systemctl stop docker
systemctl stop docker.socket
- 验证服务已停止:
systemctl status docker
步骤 2:创建新存储目录
假设您希望将 Docker 数据存储到 /ssd/docker,创建目录并设置权限:
mkdir -p /ssd/docker
chown -R 1000:1000 /ssd/docker
chmod -R 755 /ssd/docker
- 说明:Docker 默认使用
1000:1000UID/GID 运行(视系统配置可能不同)。确保目录权限正确。
步骤 3:迁移现有 Docker 数据(可选)
如果您有现有的 Docker 数据(如镜像、容器),需要迁移到新路径:
- 备份当前 Docker 数据:
cp -a /var/lib/docker /ssd/docker.bak - 移动数据到新路径:
mv /var/lib/docker/* /ssd/docker/- 如果
/var/lib/docker为空(新安装),可跳过此步骤。
- 如果
步骤 4:配置 Docker 使用新存储路径
Docker 的存储路径通过配置文件 /etc/docker/daemon.json 指定。
-
编辑或创建
daemon.json:mkdir -p /etc/docker nano /etc/docker/daemon.json -
添加或修改以下内容,指定新存储路径并保留国内镜像加速器(参考之前教程):
{ "data-root": "/ssd/docker", "registry-mirrors": [ "https://registry.docker-cn", "https://mirrors.tencentyun", "https://docker.mirrors.ustc.edu", "https://hub-mirror.c.163" ] }"data-root":指定 Docker 的数据存储路径为/ssd/docker。- 保存并退出(Ctrl+O, Enter, Ctrl+X)。
-
验证配置文件语法:
cat /etc/docker/daemon.json
步骤 5:启动 Docker 并验证
-
重启 Docker 服务:
systemctl daemon-reload systemctl start docker systemctl enable docker -
确认 Docker 使用新路径:
docker info --format '{{.DockerRootDir}}'- 应输出
/ssd/docker。
- 应输出
-
测试 Docker 功能:
docker run hello-world- 确保输出包含 “Hello from Docker!”。
-
检查存储路径:
ls -l /ssd/docker- 应看到 Docker 的子目录(如
containers、images、volumes)。
- 应看到 Docker 的子目录(如
步骤 6:清理旧数据(可选)
如果迁移成功且确认新路径正常工作,可删除旧数据以释放空间:
rm -rf /var/lib/docker/*
- 警告:确保
/ssd/docker已包含所有必要数据后再删除,避免丢失镜像或容器。
故障排查
-
Docker 服务无法启动:
- 查看日志:
journalctl -u docker - 可能原因:新路径权限错误(检查
chown和chmod)、磁盘空间不足(df -h /ssd)、daemon.json语法错误。 - 修复权限:
chown -R 1000:1000 /ssd/docker chmod -R 755 /ssd/docker
- 查看日志:
-
数据未正确迁移:
- 恢复备份:
mv /ssd/docker.bak/* /var/lib/docker/ - 移除
data-root配置,重启 Docker 后重新尝试。
- 恢复备份:
-
磁盘挂载问题:
- 确保
/ssd已正确挂载(参考之前的挂载教程):df -h /ssd - 确认
/etc/fstab包含/ssd的自动挂载条目,避免重启后路径不可用。
- 确保
-
存储空间不足:
- 检查
/ssd剩余空间:df -h /ssd - 如果空间不足,清理无用文件或扩展硬盘。
- 检查
针对网心云 OEC-Turbo 的注意事项
- ARM 架构:OEC-Turbo 使用
aarch64(arm64),确保 Docker 镜像和配置兼容。 - SATA 硬盘性能:将 Docker 数据存储到 SATA 硬盘(如
/ssd)可提高性能,但需确保硬盘已正确挂载到/ssd(参考之前教程)。 - eMMC 空间:默认
/var/lib/docker位于 eMMC,空间有限(通常 8GB 或 16GB)。迁移到/ssd可避免 eMMC 空间耗尽。 - 重启稳定性:确认
/etc/fstab已设置 SATA 硬盘自动挂载,否则重启后/ssd/docker可能不可用,导致 Docker 启动失败。
验证和后续
- 验证存储路径:运行
docker info --format '{{.DockerRootDir}}'确认路径为/ssd/docker。 - 测试容器:部署一个简单服务(如 Nginx)验证:
docker run -d -p 80:80 nginx- 在浏览器访问
http://<设备IP>,应看到 Nginx 欢迎页面。
- 在浏览器访问
- 监控存储:定期检查
/ssd/docker的磁盘使用情况:du -sh /ssd/docker
完成以上步骤后,Docker 的默认存储路径将成功更改到 /ssd/docker,并继续使用国内镜像加速器以提高拉取速度。如有问题,可查看以下信息以便诊断:
docker info --format '{{.DockerRootDir}}'
journalctl -u docker
df -h /ssd
cat /etc/docker/daemon.json
在 Armbian 系统上更改 Docker 的默认存储设置(默认存储路径为 /var/lib/docker),通常是为了将容器、镜像等数据存储到其他位置(如挂载到 /ssd 的 SATA 硬盘,以节省 eMMC 空间或提高性能)。以下是详细的中文教程,指导您在 Armbian 上修改 Docker 的默认存储路径,适用于包括网心云 OEC-Turbo 等 ARM 设备。教程假设您已成功安装 Docker,并以 root 权限操作(使用 sudo su 或直接 root 用户)。
前提条件
- Docker 已安装:运行
docker --version确认 Docker 已正常工作。 - 目标存储路径:假设您想将 Docker 数据存储到
/ssd/docker(SATA 硬盘已挂载到/ssd,如之前的教程配置)。 - 磁盘空间:确保目标路径(如
/ssd)有足够空间(建议至少 10GB 可用,运行df -h /ssd检查)。 - 备份:更改存储路径可能导致数据丢失,建议备份现有 Docker 数据(
/var/lib/docker)。 - 权限:确保目标路径对 Docker 服务有读写权限。
步骤 1:停止 Docker 服务
更改存储路径前,必须停止 Docker 服务以避免数据冲突:
systemctl stop docker
systemctl stop docker.socket
- 验证服务已停止:
systemctl status docker
步骤 2:创建新存储目录
假设您希望将 Docker 数据存储到 /ssd/docker,创建目录并设置权限:
mkdir -p /ssd/docker
chown -R 1000:1000 /ssd/docker
chmod -R 755 /ssd/docker
- 说明:Docker 默认使用
1000:1000UID/GID 运行(视系统配置可能不同)。确保目录权限正确。
步骤 3:迁移现有 Docker 数据(可选)
如果您有现有的 Docker 数据(如镜像、容器),需要迁移到新路径:
- 备份当前 Docker 数据:
cp -a /var/lib/docker /ssd/docker.bak - 移动数据到新路径:
mv /var/lib/docker/* /ssd/docker/- 如果
/var/lib/docker为空(新安装),可跳过此步骤。
- 如果
步骤 4:配置 Docker 使用新存储路径
Docker 的存储路径通过配置文件 /etc/docker/daemon.json 指定。
-
编辑或创建
daemon.json:mkdir -p /etc/docker nano /etc/docker/daemon.json -
添加或修改以下内容,指定新存储路径并保留国内镜像加速器(参考之前教程):
{ "data-root": "/ssd/docker", "registry-mirrors": [ "https://registry.docker-cn", "https://mirrors.tencentyun", "https://docker.mirrors.ustc.edu", "https://hub-mirror.c.163" ] }"data-root":指定 Docker 的数据存储路径为/ssd/docker。- 保存并退出(Ctrl+O, Enter, Ctrl+X)。
-
验证配置文件语法:
cat /etc/docker/daemon.json
步骤 5:启动 Docker 并验证
-
重启 Docker 服务:
systemctl daemon-reload systemctl start docker systemctl enable docker -
确认 Docker 使用新路径:
docker info --format '{{.DockerRootDir}}'- 应输出
/ssd/docker。
- 应输出
-
测试 Docker 功能:
docker run hello-world- 确保输出包含 “Hello from Docker!”。
-
检查存储路径:
ls -l /ssd/docker- 应看到 Docker 的子目录(如
containers、images、volumes)。
- 应看到 Docker 的子目录(如
步骤 6:清理旧数据(可选)
如果迁移成功且确认新路径正常工作,可删除旧数据以释放空间:
rm -rf /var/lib/docker/*
- 警告:确保
/ssd/docker已包含所有必要数据后再删除,避免丢失镜像或容器。
故障排查
-
Docker 服务无法启动:
- 查看日志:
journalctl -u docker - 可能原因:新路径权限错误(检查
chown和chmod)、磁盘空间不足(df -h /ssd)、daemon.json语法错误。 - 修复权限:
chown -R 1000:1000 /ssd/docker chmod -R 755 /ssd/docker
- 查看日志:
-
数据未正确迁移:
- 恢复备份:
mv /ssd/docker.bak/* /var/lib/docker/ - 移除
data-root配置,重启 Docker 后重新尝试。
- 恢复备份:
-
磁盘挂载问题:
- 确保
/ssd已正确挂载(参考之前的挂载教程):df -h /ssd - 确认
/etc/fstab包含/ssd的自动挂载条目,避免重启后路径不可用。
- 确保
-
存储空间不足:
- 检查
/ssd剩余空间:df -h /ssd - 如果空间不足,清理无用文件或扩展硬盘。
- 检查
针对网心云 OEC-Turbo 的注意事项
- ARM 架构:OEC-Turbo 使用
aarch64(arm64),确保 Docker 镜像和配置兼容。 - SATA 硬盘性能:将 Docker 数据存储到 SATA 硬盘(如
/ssd)可提高性能,但需确保硬盘已正确挂载到/ssd(参考之前教程)。 - eMMC 空间:默认
/var/lib/docker位于 eMMC,空间有限(通常 8GB 或 16GB)。迁移到/ssd可避免 eMMC 空间耗尽。 - 重启稳定性:确认
/etc/fstab已设置 SATA 硬盘自动挂载,否则重启后/ssd/docker可能不可用,导致 Docker 启动失败。
验证和后续
- 验证存储路径:运行
docker info --format '{{.DockerRootDir}}'确认路径为/ssd/docker。 - 测试容器:部署一个简单服务(如 Nginx)验证:
docker run -d -p 80:80 nginx- 在浏览器访问
http://<设备IP>,应看到 Nginx 欢迎页面。
- 在浏览器访问
- 监控存储:定期检查
/ssd/docker的磁盘使用情况:du -sh /ssd/docker
完成以上步骤后,Docker 的默认存储路径将成功更改到 /ssd/docker,并继续使用国内镜像加速器以提高拉取速度。如有问题,可查看以下信息以便诊断:
docker info --format '{{.DockerRootDir}}'
journalctl -u docker
df -h /ssd
cat /etc/docker/daemon.json
版权声明:本文标题:【Armbian】如何更改Docker的默认存储路径 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763549137a2942330.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论