迁移Docker数据目录后权限报错,重启后权限自动重置问题求助
解决Docker数据目录迁移后权限自动重置的问题
问题根源
将Docker数据目录从/var/lib/docker迁移到/home/username/.docker后,Docker服务默认以root用户运行,重启服务或系统时,会自动重置该目录的权限为root,导致普通用户无法访问config.json,触发权限拒绝错误。
修复步骤
1. 确认Docker数据目录配置
编辑Docker守护进程配置文件,确保数据目录指向新路径:
sudo nano /etc/docker/daemon.json
添加或修改以下内容(替换username为你的实际用户名):
{ "data-root": "/home/username/.docker" }
保存并退出编辑器。
2. 修改systemd服务配置,启动前设置权限
Docker的systemd服务重启时会重置目录权限,需在服务启动前先设置正确权限:
- 复制默认服务文件到自定义路径(避免修改系统默认文件):
sudo cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service
- 编辑自定义服务文件:
sudo nano /etc/systemd/system/docker.service
找到[Service]区块,添加以下两行(替换username为你的实际用户名):
ExecStartPre=/bin/chown -R username:username /home/username/.docker ExecStartPre=/bin/chmod -R g+rwx /home/username/.docker
保存并退出。
3. 重新加载配置并重启服务
sudo systemctl daemon-reload sudo systemctl restart docker
4. 确保用户加入docker组(可选)
让普通用户无需sudo即可运行Docker命令,同时避免部分权限问题:
sudo usermod -aG docker $USER
执行后注销当前用户再重新登录,或运行newgrp docker临时生效组权限。
内容的提问来源于stack exchange,提问作者infernal
相关产品推荐
相关产品推荐

