docker目录迁移

前言: 26服务器系统盘空间不足,其中docker环境占用太多存储空间,以下操作将docker环境的存储目录迁移至disk4T硬盘上。

qx学长整理的,我保存一哈

具体操作(软连接方式):

  1. 关闭docker服务

    sudo systemctl stop docker
    
  2. 复制已有docker环境到新的目录

    cp -a /var/lib/docker /home/disk4T
    # 更改目录名称
    mv /home/disk4T/docker /home/disk4T/docker_environment
    
  3. 备份原目录数据

    mv -u /var/lib/docker /home/disk4T/docker.bak
    
  4. 添加软连接

    sudo ln -fs /home/disk4T/docker_environment /var/lib/docker
    
  5. 重启docker服务

    sudo systemctl start docker
    
  6. 验证

    docker images
    docker ps -a
    
  7. 删除备份

    rm -rf /home/disk4T/docker.bak
    
<think>好的,用户想知道如何迁移Docker容器内的目录到其他位置或主机。我需要根据提供的引用资料来整理步骤。首先,我得区分容器迁移和数据目录迁移的不同方法。根据引用[3],容器迁移可以使用docker save和docker load,而数据目录迁移则涉及修改Docker的存储路径,如引用[1]、[2]、[4]、[5]提到的步骤,包括停止Docker服务、移动目录、创建符号链接等。另外,用户可能混淆了容器迁移和数据迁移,需要明确说明两种情况。还要注意数据备份的重要性,避免操作失误导致数据丢失。最后,提醒用户验证迁移后的服务是否正常,再删除旧数据。需要分步骤清晰说明,确保用户能安全操作。</think>### Docker容器目录迁移方法教程 #### 一、容器迁移与数据目录迁移的区别 1. **容器整体迁移**:将整个容器(包含文件系统、配置)转移到其他主机,使用`docker save`导出镜像,再通过`docker load`导入[^3]。 2. **数据目录迁移**:修改容器存储路径或挂载目录的位置,需要修改Docker主存储目录或调整数据卷配置[^1][^4]。 --- #### 二、容器整体迁移步骤(跨主机) 1. **保存容器为镜像** ```bash docker commit 容器名称 新镜像名称:标签 ``` 2. **导出镜像为压缩文件** ```bash docker save -o ~/container-backup.tar 新镜像名称:标签 #引用[3] ``` 3. **传输文件到目标主机** 使用`scp`或`rsync`将`container-backup.tar`发送到新主机 4. **导入镜像并运行** ```bash docker load -i container-backup.tar docker run -d --name 新容器名 镜像名:标签 ``` --- #### 三、Docker数据目录迁移(修改存储路径) 适用于需要将`/var/lib/docker`移动到更大磁盘的场景: 1. **停止Docker服务** ```bash systemctl stop docker ``` 2. **创建新存储目录** ```bash mkdir -p /新路径/docker #如/home/docker/lib[^1]或/data/docker ``` 3. **迁移数据(保留原数据备份)** ```bash cp -a /var/lib/docker/* /新路径/docker/ #安全复制 # 或 mv /var/lib/docker /新路径/docker #直接移动[^4] ``` 4. **创建符号链接**(可选) ```bash ln -s /新路径/docker /var/lib/docker #引用[2] ``` 5. **修改配置文件**(非符号链接方案) 编辑`/etc/docker/daemon.json`: ```json { "data-root": "/新路径/docker" } ``` 6. **重启Docker并验证** ```bash systemctl start docker docker info | grep "Docker Root Dir" #检查路径是否生效 ``` 7. **清理旧数据**(确认无误后) ```bash rm -rf /var/lib/docker.old #引用[5] ``` --- #### 四、容器数据卷迁移容器使用`-v`挂载了数据卷,直接迁移挂载目录即可: 1. **停止容器** ```bash docker stop 容器名 ``` 2. **复制数据到新目录** ```bash cp -a /原挂载目录/* /新挂载目录/ ``` 3. **重新启动容器** ```bash docker run -v /新挂载目录:/容器内路径 镜像名 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值