Linux 非 root 运行 Docker:rootless mode

发布时间: 更新时间: 总字数:467 阅读时间:1m 作者: IP上海 分享 网址

Docker rootless 是一种在非特权模式下运行 Docker 守护进程的方式,它允许用户以非 root 用户管理 Docker 守护进程和容器,以降低潜在的安全漏洞风险

介绍

  • docker rootless 特性于 2019.7.22 的 v19.03.0 引入,2020.12.8 版本 v20.10.0 GA
  • rootless 优点
    • 以非 root 用户身份运行容器
    • 限制容器的权限
    • 限制容器能力

安装

  • 以 ubuntu 22.04 为例
  • 安装 dbus-user-session
sudo apt-get install -y dbus-user-session
  • 安装 uidmap:让 Docker 守护进程运行在重映射的用户名空间中
    • subuid/subgid 最大范围 2,147,483,6482^32-1参考
sudo apt-get install -y uidmap

# 安装后,自动生成如下信息
$ whoami
testuser
$ grep ^$(whoami): /etc/subuid
testuser:231072:65536
$ grep ^$(whoami): /etc/subgid
testuser:231072:65536
  • 下面定制 subuids/subgids(可忽略)
    • 解决错误 failed to Lchown "/path/to/xxx" for UID <uid>, GID <gid> (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid): lchown /path/to/xxx: invalid argument
sudo touch /etc/sub{u,g}id
sudo usermod --add-subuids 10000-75535 $(whoami)
sudo usermod --add-subgids 10000-75535 $(whoami)
sudo apt-get install -y slirp4netns
  • limit 配置
$ cat /etc/security/limits.conf
* soft nofile 10240
* hard nofile 10240
  • sysctl 配置
$ cat << EOT > /etc/sysctl.conf
user.max_user_namespaces = 28633
EOT

$ sysctl --system
  • 启用无特权 ping
$ cat /proc/sys/net/ipv4/ping_group_range
0 2000000

# 配置命令
sysctl -w "net.ipv4.ping_group_range=0 2000000"
  • 安装 rootless docker
curl -o rootless.sh -fsSL https://get.docker.com/rootless

# 替换国内源
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' rootless.sh

sh rootless.sh
  • 启动
systemctl --user start docker
systemctl --user enable docker
systemctl --user status docker

# To launch the daemon on system startup, enable the systemd service and lingering
sudo loginctl enable-linger $(whoami)
  • 相关配置文件

    • ~/.config/docker/daemon.json
  • 使用

export PATH=/usr/bin:$PATH
export XDG_RUNTIME_DIR=/run/user/$UID
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock >> ~/.bashrc
或
docker context use rootless

然后可以和正常使用 docker 相关命令

参考

  1. https://docs.docker.com/engine/security/rootless/
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数