【信创】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环境变量,任意目录可以直接调用docker、dockerd命令。

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就停止,无法开机自启。

相关推荐
l1t6 小时前
DeepSeek总结的一个不含数据的 DuckDB 数据库
服务器·数据库·duckdb
忆挽篱笙歌6 小时前
makefil
linux·运维·服务器
菜_小_白7 小时前
codex
linux·vscode·ai
程序员老赵7 小时前
Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台
运维·前端·后端
zhangrelay7 小时前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人
林兴洋8 小时前
linux-mtr命令-ping和traceroute的能力合二为一
linux
cws2004018 小时前
监控摄像头选型指南
运维·网络·监控
变量探索SEQVEC8 小时前
一个网段里 10 个 IP,其实是同一个人:13 天蜜罐日志的攻击者画像
服务器
协皓家具8 小时前
2026年广州岛台吧台椅厂家有啥新变化
大数据·运维·python·devops
OsDepK8 小时前
OSMDE_v1.9.0已加入FTP与shell功能
linux·运维·服务器