【信创】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

核心逻辑:

  1. dockerd :后台守护进程,接收docker命令请求,管理镜像、网络、存储;
  2. containerd:dockerd向下调用的容器运行时,负责创建/销毁容器;
  3. 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. 解压

bash 复制代码
tar -zxvf docker-26.0.2.tgz

解压得到docker文件夹。

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

bash 复制代码
cp docker/* /usr/bin/

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

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

ini 复制代码
[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,启动并开机自启

bash 复制代码
# 重新加载systemd单元配置
systemctl daemon-reload

# 启动docker
systemctl start docker

# 设置开机自启
systemctl enable docker

6. 验证

bash 复制代码
docker -v
docker info

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

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

创建 /etc/docker/daemon.json

json 复制代码
{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}

修改后重启:systemctl restart docker

三、卸载(tgz包专用)

bash 复制代码
# 停止服务
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/,需要手动删除。

四、常见坑点

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

五、最简测试(不使用systemd,临时手动启动)

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

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

相关推荐
程曦曦1 小时前
MySQL 生产库误删 98 张表后的时间点恢复实战:从 binlog 解析到资金对账
linux·数据结构·其他·算法·ubuntu·运维开发
Dachui_11221 小时前
内网穿透 Webhook 告警实战:客户端离线、应用探测、资源删除全覆盖
运维·远程工作·内网穿透·devops·webhook·服务器监控·应用探测
郝学胜-神的一滴1 小时前
Effective Python 条款 13:善用星号解包,告别下标切片拆分的坑
服务器·开发语言·数据结构·python·程序人生·pycharm
数据智研1 小时前
【数据分享】300个城市-5G试点城市DID数据(2014-2025)
大数据·运维·人工智能·信息可视化·数据分析
honsor1 小时前
工业级网口温湿度变送器 ModbusTCP 机房动环环境监测终端
运维·网络·人工智能·物联网·安全·云计算·智能温湿度监测系统
赵民勇2 小时前
systemd-mount命令详解
linux
fengkai45452 小时前
八、Docker详解1-3
运维·docker·容器
H_oRIZoN_2 小时前
Linux入门DAY42【51 单片机】DS18B20 数字温度传感器完整解析(单总线原理 + 时序 + 读取流程)
linux·单片机·linux应用编程
j7~2 小时前
【Linux网络加餐】(篇六)网络版计算器(上):模板方法模式、序列化与 JSON
linux·c++·json·序列化·反序列化·网络版计算机