在ubuntu系统中如何将docker安装在指定目录

在 Ubuntu 系统中,Docker 默认安装路径(程序文件)通常在/usr/bin等系统目录,而核心数据(镜像、容器、卷等)默认存储在/var/lib/docker。若需将数据目录指定到其他位置(这是更常见的需求,因为程序文件通常无需修改路径),可按以下步骤操作:

方法:修改 Docker 数据存储目录(推荐)

1. 停止 Docker 服务

首先确保 Docker 服务处于停止状态:

python 复制代码
sudo systemctl stop docker
sudo systemctl stop docker.socket  # 如果上一步有提示就需要停止socket
2. 创建目标目录

在指定位置创建 Docker 数据目录(例如/home/用户名/soft/dockerdata),并确保权限正确:

python 复制代码
sudo mkdir -p /home/用户名/soft/dockerdata # 替换为你的目标路径
sudo chmod 711 /home/用户名/soft/dockerdata # Docker需要该权限
3. 迁移现有数据(如果已有镜像 / 容器)

若之前已有 Docker 数据,需将默认目录的内容迁移到新目录:

python 复制代码
sudo rsync -avx /var/lib/docker/ /home/用户名/soft/dockerdata
4. 配置 Docker 数据目录

通过daemon.json配置文件指定新的数据目录(推荐这种方式,避免修改 systemd 服务文件):

python 复制代码
sudo mkdir -p /etc/docker  # 确保配置目录存在
sudo tee /etc/docker/daemon.json <<EOF
{
  "data-root": "/data/docker"
}
EOF
5. 重启 Docker 服务并验证
python 复制代码
# 重新加载配置并启动Docker
sudo systemctl daemon-reload
sudo systemctl start docker

# 验证数据目录是否生效
sudo docker info | grep "Docker Root Dir"

若输出显示为你指定的/data/docker,则配置成功。

补充说明:

  • 程序文件路径 :Docker 的可执行文件(如docker、dockerd)默认安装在/usr/bin,一般无需修改(也不建议修改,可能导致依赖问题)。
  • 注意事项 :
    • 目标目录所在的分区需有足够空间(存储镜像、容器等)。
    • 若使用systemd管理 Docker,修改daemon.json是最安全的方式,避免直接编辑/lib/systemd/system/docker.service(可能被系统更新覆盖)。
    • 若无需保留原有数据,可跳过步骤 3(迁移数据),但新目录会是空的,原有镜像 / 容器需重新拉取或创建。

通过以上步骤,即可将 Docker 的核心数据存储到指定目录,解决默认路径空间不足的问题。

相关推荐
Hello.Reader38 分钟前
一个开源项目,让 AI 做逆向不再靠猜reverse-skill 架构解析与本地实战
人工智能·架构·开源
wespaul1 小时前
VeapAI 自然语言操作实战|第 05 篇:向量与召回——从知识条目到可检索资产
大数据·数据库·人工智能·milvus
mingbaiceping1 小时前
复旦-华盛顿大学EMBA:2026年AI课程矩阵解析
人工智能
李福春2 小时前
技术思考问题17:上了LangChain框架就等于AI-Agent工程化吗?
大数据·人工智能·langchain·深圳同盟·腾讯云架构师技术同盟·llm应用架构·编排抽象
揽秀亭长2 小时前
AIGC 检测原理拆解与论文降 AI 率的可复现处理流程(2026版)
人工智能·aigc
牛马工作号2 小时前
Mosquitto + ACME:从 Docker Compose 部署到 TLS 证书自动续期与加载
运维·docker·容器
羞儿2 小时前
【DSH】为什么需要-Harness
人工智能·大模型·harness·认知构建
JackLam4 小时前
AI-安装ChatGpt Codex
人工智能
强哥聊算力4 小时前
《算力江湖·英伟达传奇》第七集:ChatGPT出现前夜,英伟达发生了什么?
服务器·人工智能·算法·ai·chatgpt·gpu算力
Initialize-le5 小时前
Nginx 504 超时、499 一堆?网关排查法
运维·nginx