楼主: W160925150908Iq
82 0

离线安装 - rootless模式的docker [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2018-5-22
最后登录
2018-5-22

楼主
W160925150908Iq 发表于 2025-12-2 07:00:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

由于企业对服务器的ROOT权限进行严格管控,普通用户在安装Docker时往往只能采用rootless模式。此外,在一些完全隔离的内网环境中,无法访问外网资源,必须依赖离线方式进行部署。

所需资源准备

以下是完成本次安装所需的三个核心文件:

  • Docker官方离线安装脚本
    rootless-install.sh
    下载地址:https://get.docker.com/rootless
  • 静态二进制主程序包
    docker-28.3.3.tgz
    下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-28.3.3.tgz
  • rootless专用扩展组件包
    docker-rootless-extras-28.3.3.tgz
    下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-rootless-extras-28.3.3.tgz

修改安装脚本以支持本地文件读取(关键步骤)

将下载好的rootless-install.sh保存至本地,并编辑其中原本用于在线获取资源的部分。

原始代码段为:

# 原始在线下载
curl -L -o docker.tgz "$STATIC_RELEASE_URL"
curl -L -o rootless.tgz "$STATIC_RELEASE_ROOTLESS_URL"

替换为以下内容,使其从本地路径复制文件:

# 使用本地离线包
cp ~/docker-offline/docker-28.3.3.tgz "$tmp/docker.tgz"
cp ~/docker-offline/docker-rootless-extras-28.3.3.tgz "$tmp/rootless.tgz"

修改完成后保存并退出编辑器。

[此处为图片1]

传输文件至目标主机

将以下三个文件一并拷贝到内网环境中的目标机器上,建议放置于普通用户的指定目录,例如:~/docker-offline/

  • rootless-install.sh
  • docker-28.3.3.tgz
  • docker-rootless-extras-28.3.3.tgz

在内网主机执行安装(无需root权限)

进入文件所在目录并赋予脚本可执行权限:

cd ~/docker-offline
chmod +x rootless-install.sh
./rootless-install.sh

该脚本会自动将Docker相关可执行文件解压至当前用户的$HOME/bin目录下,并配置好PATH以及DOCKER_HOST环境变量。

[此处为图片2]

关于dockerd管理脚本说明

执行./rootless-install.sh后,系统会在~/bin目录生成多个工具文件,其中:

~/bin/dockerd-rootless-setuptool.sh install   # 安装dockerd服务(由主脚本自动调用)
~/bin/dockerd-rootless-setuptool.sh uninstall # 卸载dockerd服务

通常情况下无需手动执行install命令,因为主安装脚本已自动完成调用。

启动与验证

为确保Docker守护进程在用户会话结束后仍能持续运行,需启用用户级linger模式:

loginctl enable-linger $USER

此步骤极为重要。若未开启,关闭终端后systemd将在约15秒后通过KillUserProcesses机制终止dockerd进程。

验证安装是否成功:

docker --version

若正确输出版本信息,则表示安装成功。

服务注册与状态查看

安装完成后,Docker将以用户级systemd服务形式注册。与系统级服务不同,操作时需添加--user参数。

例如,查看当前用户下Docker服务状态:

systemctl --user status docker

用户级systemd服务默认受登录状态影响,启用linger模式后可避免因用户登出而导致服务中断的问题。

[此处为图片3]
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:less root ESS doc les

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-10 20:14