非root用户安装 docker 28.3.3 (二进制方式)
------------------------------失败
因为没有system 前台启动的原因.
用户:
1 前置检查(在 u01 账户下执行)
# 确认内核支持 user namespace(openEuler 24.03 默认已开启)
cat /proc/sys/user/max_user_namespaces # 应大于 0
# 确认架构
uname -m # x86_64
# 确认 home 目录可写
echo $HOME # /home/u01
# 确认 PATH 不冲突
echo $PATH
如果 `max_user_namespaces` 为 0,需要 root 执行:
echo "user.max_user_namespaces=28633" >> /etc/sysctl.conf
sysctl -p
2 下载源码:
# Docker CE 静态二进制(包含 dockerd、containerd、runc 等所有组件)
curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-28.3.3.tgz -o docker.tgz
# Rootless 模式所需的 extras(含 rootlesskit、slirp4netns、vpnkit 等)
curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-rootless-extras-28.3.3.tgz -o rootless.tgz
版本号可在 https://download.docker.com/linux/static/stable/x86_64/ 查看最新。
然后解压:
tar -xzf docker.tgz
tar -xzf rootless.tgz
cp docker/* ~/bin/
cp docker-rootless-extras/* ~/bin/
正常应能看到 `docker/dockerd`、`docker-rootless-extras/dockerd-rootless.sh` 等条目。
3 配置环境变量
把以下内容追加到 `~/.bashrc`:
export PATH=$HOME/bin:$PATH
export DOCKER_HOST=unix://$HOME/run/docker.sock
执行 `source ~/.bashrc` 生效。
4 配置 dockerd 存储目录
`daemon.json` 放到 `~/.config/docker/daemon.json`:
mkdir -p ~/.config/docker
cat > ~/.config/docker/daemon.json <<'EOF'
{
"data-root": "/home/u01/data/docker",
"exec-root": "/home/u01/run/docker",
"pidfile": "/home/u01/run/docker.pid",
"storage-driver": "overlay2",
"iptables": false,
"bridge": "none"
}
EOF
注意:
openEuler 24.03 默认使用 nftables,`iptables: false` 让 docker 不要去操作 iptables。
`bridge: "none"` 在 rootless 模式下默认行为,避免与宿主机网络冲突。
5 启动 dockerd(前台方式验证)
------------------------------失败
欢迎来撩 : 汇总all
