You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移Docker data-root到SD卡后资源不可见且权限异常求助

Docker迁移data-root到SD卡后恢复数据及权限持久化方案

1. 确认Docker配置文件的正确性

  • 编辑Docker守护进程配置文件/etc/docker/daemon.json,确保data-root指向SD卡的目标路径:
    {
      "data-root": "/mnt/sd/var/lib/docker"
    }
    
  • 保存文件后重启Docker服务:
    sudo systemctl restart docker
    
  • 验证配置是否生效,执行以下命令,输出应显示你设置的SD卡路径:
    docker info | grep "Docker Root Dir"
    

2. 持久化修复目录权限(解决临时生效问题)

  • SD卡挂载时的权限参数会导致手动修改的权限被重置,编辑/etc/fstab文件,找到SD卡对应的挂载行,添加uid=root,gid=docker,umask=0002参数,示例如下:
    /dev/mmcblk0p1 /mnt/sd ext4 defaults,uid=root,gid=docker,umask=0002 0 2
    
  • 重新挂载SD卡使配置生效:
    sudo mount -o remount /mnt/sd
    
  • 一次性修正Docker目录的所有权和权限,确保docker用户组拥有访问权限:
    sudo chown -R root:docker /mnt/sd/var/lib/docker
    sudo chmod -R 775 /mnt/sd/var/lib/docker
    

3. 让Portainer重新识别数据

  • 如果Portainer以容器形式运行,直接重启容器即可(先通过docker ps找到容器名,替换下面的portainer):
    docker restart portainer
    
  • 若重启后仍无法识别,可重新部署Portainer,确保挂载的Docker套接字和数据卷路径正确:
    docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /mnt/sd/var/lib/docker/portainer_data:/data \
    portainer/portainer-ce:latest
    

4. 验证恢复效果

  • 执行docker images、docker ps -a命令,检查原有镜像、容器是否能被识别
  • 登录Portainer界面,查看镜像、容器、堆栈、卷等资源是否正常显示

内容的提问来源于stack exchange,提问作者Leonid Sharlandzhiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:01:10