Ubuntu 24.04 Rootless Docker 安装指南
Ubuntu 24.04 Rootless Docker 安装指南
1. 准备工作
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装必要依赖
sudo apt install -y uidmap dbus-user-session
2. 安装 Docker(常规方式)
点击查看安装方式
3. 配置 Rootless 模式
# 安装 Rootless 依赖
sudo apt-get install -y fuse-overlayfs
# 配置用户子 UID/GID
echo "你的用户名:100000:65536" | sudo tee /etc/subuid
echo "你的用户名:100000:65536" | sudo tee /etc/subgid
# 配置当前用户(替换为你的用户名)
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 你的用户名
# 退出并重新登录以应用更改
exit
重新通过 SSH 或本地登录后继续:
# 安装 Rootless Docker
dockerd-rootless-setuptool.sh install
# 设置环境变量
echo 'export PATH=/usr/bin:$PATH' >> ~/.bashrc
echo 'export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock' >> ~/.bashrc
source ~/.bashrc
4. 配置 Systemd 服务(可选)
# 启用用户 linger(允许用户运行后台服务)
sudo loginctl enable-linger $(whoami)
# 安装 systemd 服务文件
systemctl --user enable docker
systemctl --user start docker
5. 配置镜像源
mkdir -p ~/.config/docker
cat > ~/.config/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
EOF
systemctl --user restart docker
6. 验证安装
# 检查 Docker 运行状态
systemctl --user status docker
# 运行测试容器
docker run --rm hello-world
7. 常见问题解决
网络端口问题
Rootless 模式下,普通用户无法绑定 <1024 端口。如需绑定低端口:
sudo setcap cap_net_bind_service=ep $(which rootlesskit)
存储驱动问题
如果使用 overlay2
驱动:
echo '{"storage-driver": "overlay2"}' > ~/.config/docker/daemon.json
systemctl --user restart docker
8. 卸载 Rootless Docker
dockerd-rootless-setuptool.sh uninstall
sudo apt purge docker-ce docker-ce-cli containerd.io
通过以上步骤,你可以在无需 root 权限的情况下安全地运行 Docker 容器。遇到问题时,可检查日志:
journalctl --user-unit docker.service