Ubuntu系统docker非root用户部署并调整默认存储位置

别的可以参考,但最好别改成app用户,也别用 userns-remap,权限问题很大。

如果要让非 root 用户(app 用户)管理 Docker 目录,需要做一些额外配置。以下是详细步骤:
首先将 app 用户添加到 docker 用户组:

# 添加用户到 docker 组
sudo usermod -aG docker app

# 重新登录以使组权限生效
# 或者运行下面的命令立即生效
newgrp docker

创建新目录并设置权限:

# 创建新目录
sudo mkdir -p /data/app/docker

# 更改目录所有权
sudo chown -R app:docker /data/app/docker

# 设置适当的权限
sudo chmod 770 /data/app/docker

配置 Docker daemon:

# 编辑或创建 daemon.json
sudo nano /etc/docker/daemon.json

# 添加以下内容
{
  "data-root": "/data/app/docker",
  "userns-remap": "app"
}

创建用户命名空间映射(这一步很重要):

# 编辑 /etc/subuid
sudo nano /etc/subuid
# 添加下面这行(将 1000 替换为 app 用户的实际 UID)
app:1000:65536

# 编辑 /etc/subgid
sudo nano /etc/subgid
# 添加下面这行(将 1000 替换为 app 用户的实际 GID)
app:1000:65536

重启 Docker 服务:

sudo systemctl restart docker

验证配置:

# 检查 Docker 信息
docker info

# 尝试运行容器
docker run hello-world

注意事项:
使用 userns-remap 会影响一些需要特权访问的容器
如果遇到权限问题,可以检查:

   # 查看 app 用户的 UID
   id app
   
   # 查看 Docker 目录权限
   ls -la /data/app/docker

如果之前有运行的容器和镜像,在更改存储位置后需要重新拉取
您要我详细解释某个步骤吗?或者需要帮助排查可能遇到的问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值