openEuler 22.03 LTS Rootless Docker 安裝指南
1.創建普通用戶(用于無根模式)
sudo useradd -m docker-user
sudo passwd docker-user # 設置密碼
sudo usermod --add-subuids 100000-165535 docker-user
sudo usermod --add-subgids 100000-165535 docker-user
2. 切換到普通用戶,直接安裝 Rootless Docker
# 切換到新用戶
sudo -u docker-user -i
# 下載安裝腳本(如果失敗,多執行幾次)
curl -fsSL https://get.docker.com/rootless -o get-docker.sh
# 安裝(跳過rootful Docker檢查)
sh get-docker.sh --skip-install-rootless
# 安裝 Rootless Docker(可不需要,但是可以查看下面的環境變量)
dockerd-rootless-setuptool.sh install
# 設置環境變量
echo 'export XDG_RUNTIME_DIR=/home/yujiaqi/.docker/run' >> ~/.bashrc
echo 'export PATH=/home/yujiaqi/bin:$PATH' >> ~/.bashrc
echo 'export DOCKER_HOST=unix:///home/yujiaqi/.docker/run/docker.sock' >> ~/.bashrc
source ~/.bashrc
3. 配置鏡像源
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"],# 修改存儲位置(如需要),默認是~/.local/share/docker"data-root": "/var/lib/docker-rootless"
}
EOF
4. 手動啟動 Docker 守護進程
# 啟動守護進程(后臺運行)
nohup dockerd-rootless.sh > ~/docker.log 2>&1 &
# 檢查是否運行
ps aux | grep dockerd
5. 驗證 Docker 連接
# 等待 5-10 秒讓守護進程啟動
sleep 10
# 測試 Docker 命令
docker ps
docker run --rm hello-world
6. 遷移現有鏡像(可選)
如果是后續才更改的存儲位置,可以使用下面方法遷移鏡像
# 創建用戶目錄
sudo mkdir -p /var/lib/docker-rootless/zengshun
# 設置所有權和權限(關鍵步驟)
sudo chown zengshun:zengshun /var/lib/docker-rootless/zengshun
sudo chmod 700 /var/lib/docker-rootless/zengshun # 僅用戶自己可訪問
# 1. 停止 Docker
pkill -f dockerd-rootless
# 2. 遷移數據(保留權限)
rsync -av ~/.local/share/docker/ /var/lib/docker-rootless/zengshun/
# 3. 刪除舊數據(確認遷移成功后)
rm -rf ~/.local/share/docker