欢迎光临
我们一直在努力

【信创】docker-26.0.2.tgz 原理 + 完整安装

docker-26.0.2.tgz 原理 + 完整安装

tgz包 = Docker官方静态二进制离线包,不是rpm/deb软件包;里面是已经编译好的独立可执行文件,不依赖包管理器,适合内网、信创、隔离服务器部署。

一、原理

1. tgz包内包含文件(解压后docker目录)

docker
├── docker # CLI客户端命令
├── dockerd # Docker守护进程(核心服务)
├── containerd # 容器运行时,管理容器生命周期
├── ctr # containerd客户端
├── runc # OCI标准容器运行时,直接调用内核cgroup/namespace
├── docker-init
├── docker-proxy
└── containerd-shim-runc-v2

核心逻辑:

  • dockerd:后台守护进程,接收docker命令请求,管理镜像、网络、存储;
  • containerd:dockerd向下调用的容器运行时,负责创建/销毁容器;
  • runc:底层调用Linux内核能力:Namespace(隔离)、Cgroup(资源限制),真正启动容器进程。
  • 2. tgz安装本质

    只是拷贝静态编译好的二进制程序到系统PATH目录,手动创建systemd服务单元文件,让systemd管理dockerd启停。

    • 无软件包数据库记录(不像rpm);
    • 卸载直接删除二进制文件+服务文件即可;
    • 静态编译,内置依赖,不需要在线拉取依赖,这就是离线安装的原理。

    对比rpm安装:rpm会自动注册到系统包数据库、自动创建service文件;tgz全部手动。

    二、安装步骤(root权限,Linux x86_64)

    1. 下载包

    官方地址:[https://download.docker.com/linux/static/stable/x86_64/docker-26.0.2.tgz](https://download.docker.com/linux/static/stable/x86_64/docker-26.0.2.tgz)

    2. 解压

    tar -zxvf docker-26.0.2.tgz

    解压得到docker文件夹。

    3. 拷贝二进制到系统可执行目录

    cp docker/* /usr/bin/

    /usr/bin在系统PATH环境变量,任意目录可以直接调用docker、dockerd命令。

    4. 创建systemd服务文件 /etc/systemd/system/docker.service

    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target

    [Service]
    Type=notify
    ExecStart=/usr/bin/dockerd
    ExecReload=/bin/kill -s HUP $MAINPID
    LimitNOFILE=infinity
    LimitNPROC=infinity
    TimeoutStartSec=0
    Delegate=yes
    KillMode=process
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s

    [Install]
    WantedBy=multi-user.target

    5. 重载systemd,启动并开机自启

    # 重新加载systemd单元配置
    systemctl daemon-reload

    # 启动docker
    systemctl start docker

    # 设置开机自启
    systemctl enable docker

    6. 验证

    docker -v
    docker info

    输出Docker version 26.0.2, build 3c8b0c4即成功。

    7. 可选:配置镜像加速器

    创建 /etc/docker/daemon.json

    {
    "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
    }

    修改后重启:systemctl restart docker

    三、卸载(tgz包专用)

    # 停止服务
    systemctl stop docker
    systemctl disable docker

    # 删除service文件
    rm -f /etc/systemd/system/docker.service

    # 删除二进制文件
    rm -f /usr/bin/docker /usr/bin/dockerd /usr/bin/containerd /usr/bin/ctr /usr/bin/runc /usr/bin/docker-init /usr/bin/docker-proxy /usr/bin/containerd-shim-runc-v2

    systemctl daemon-reload

    注意:镜像/容器数据默认保存在 /var/lib/docker/,需要手动删除。

    四、常见坑点

  • 架构不匹配:x86_64包不能在arm64/飞腾/鲲鹏直接运行,需要下载对应架构tgz包;
  • 内核版本过低:Docker26要求内核≥5.4;
  • SELinux:部分系统默认开启,会导致容器启动失败,临时关闭或配置策略;
  • 旧版本残留:机器之前装过rpm版docker,需要先卸载旧版本,避免冲突;
  • cgroup驱动:新版dockerd默认检测systemd cgroup,生产环境推荐使用native.cgroupdriver=systemd。
  • 五、最简测试(不使用systemd,临时手动启动)

    # 直接后台启动dockerd(仅测试,不推荐生产)
    dockerd &

    缺点:终端关闭dockerd就停止,无法开机自启。

    赞(0)
    未经允许不得转载:171主机测评 » 【信创】docker-26.0.2.tgz 原理 + 完整安装
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址