kylin10-x64 离线安装docker28.3.3

kylin10-x64 离线安装docker28.3.3

1、环境介绍


# hostnamectl

   Static hostname: ky10
         Icon name: computer-vm
           Chassis: vm
        Machine ID: f554764e21b74c2fa057d9aaa296af63
           Boot ID: 4c155f0185c24a14970ab5ea60de34f4
    Virtualization: vmware
  Operating System: Kylin Linux Advanced Server V10 (Halberd)
            Kernel: Linux 4.19.90-89.11.v2401.ky10.x86_64
      Architecture: x86-64

2、下载离线安装包

下载地址: https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-28.3.3.tgz

选择自己需要的版本并下载。

https://mirrors.aliyun.com/docker-ce/linux/static/stable/

aarch64/ 是arm 架构的

生产环境下选择稳定版本

选择稳定版本:尽量选择最新的稳定版本(如 28.x.x),避免使用过旧或测试版本” 这句话是软件部署中的一个 最佳实践原则,尤其是在生产环境(正式运行的服务器)中非常重要。

下面我们来详细解释这句话的含义和背后的逻辑。


✅ 一、“稳定版本”是什么意思?

🌟 稳定版本(Stable Release)

是经过充分测试、修复了大量已知 bug 的正式发布版本。通常用于 生产环境(即真实业务运行的服务器)。版本号格式一般为:
主版本.次版本.修订号
,例如:
28.3.3


28
:主版本(major)
3
:次版本(minor)
3
:修订/补丁版本(patch)

✅ 举例:
docker-28.3.3.tgz
就是一个稳定的正式版本。


⚠️ 对比:“测试版本”或“开发版本”是什么?
类型 说明 是否推荐用于生产
Edge / Nightly / Test 版本 比如
docker-29.0.0-beta.1.tgz
❌ 不推荐
RC 版本(Release Candidate) 候选发布版,接近稳定但仍有风险 ⚠️ 谨慎使用
Dev / Snapshot 版本 开发中的快照,极不稳定 ❌ 绝对不要用于生产

这些版本更新快、功能新,但可能包含严重 bug、崩溃、数据丢失等问题。


✅ 二、为什么推荐“最新的稳定版本”?

1. ✅ 安全性更高

新的稳定版本通常修复了旧版本中的 安全漏洞。例如:某个旧版 Docker 存在“容器逃逸”漏洞,新版已修复。

🔐 使用旧版本 = 暴露在已知风险中

2. ✅ 功能更完善、性能更好

新版本通常优化了资源占用、启动速度、网络性能等。支持新的容器技术、更好的日志管理、更灵活的配置。

3. ✅ 社区支持更好

老旧版本可能已经 停止维护(EOL, End of Life)。遇到问题时,社区、文档、搜索引擎结果更丰富。

4. ✅ 兼容性更强

新版 Docker 更好地支持 Kubernetes、Prometheus、Zabbix 等生态工具。与镜像仓库(如 Docker Hub、阿里云镜像)兼容性更好。


❌ 为什么不建议使用“过旧版本”?

风险 说明
安全漏洞 已知漏洞未修复,容易被攻击
功能缺失 不支持新特性(如 rootless 模式、cgroup v2)
Bug 更多 用户反馈的问题在旧版本中未解决
无法升级 跨版本升级困难,甚至需要重装

📉 举例:
docker-18.06.3-ce.tgz
是 2018 年的版本,现在已经 完全过时,不再受支持。


🎯 那“最新”是不是越新越好?

不是!要区分:

类型 是否推荐
最新的稳定版(如
28.3.3
✅ 推荐
最新的测试版(如
29.0.0-beta
❌ 不推荐用于生产

所以:

✅ 正确做法:选择 当前最新的稳定版本(latest stable release),而不是“最新发布的任何版本”。


🛠 实际建议(以 Docker 为例)

✅ 推荐选择:


docker-28.3.3.tgz

docker-28.2.1.tgz

docker-27.4.1.tgz

这些是 稳定分支 中的最新修订版。

❌ 避免选择:


docker-29.0.0-beta.1.tgz
→ 测试版
docker-19.03.15.tgz
→ 太旧,已停止维护
docker-nightly.tgz
→ 每日构建版,极不稳定


📌 总结:一句话记住

“用最新的稳定版,不用最新的测试版”

就像你不会拿“测试版手机系统”去跑公司业务一样,服务器软件也必须追求 稳定性、安全性和可维护性


如果你正在为生产环境部署 Docker,我建议你选择:
👉
docker-28.3.3.tgz
或更高版本的稳定版(只要不是 beta/nightly)

3、安装docker


cd /soft/
# 解压
tar -zxvf docker-28.3.3.tgz

docker/
docker/ctr
docker/dockerd
docker/containerd
docker/runc
docker/docker-proxy
docker/docker
docker/docker-init
docker/containerd-shim-runc-v2

# 移动到系统路径
cp docker/* /usr/bin/

3.1 配置服务

创建文件:/etc/systemd/system/docker.service,并填充如下内容:


# 配置服务
vi /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
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --config-file /etc/docker/daemon.json
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

3.2 启动服务


chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload 
systemctl start docker.service 
systemctl enable docker.service
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /etc/systemd/system/docker.service.

docker ps -a

🔧 命令逐条解释

1.
chmod +x /etc/systemd/system/docker.service


chmod +x /etc/systemd/system/docker.service

作用:给 Docker 服务文件添加“可执行”权限。详细说明
chmod
:修改文件权限。
+x
:增加“执行”权限(execute)。
/etc/systemd/system/docker.service
:这是 systemd 管理 Docker 服务的配置文件。✅ 为什么需要?
虽然
.service
文件本身不是“可执行程序”,但某些系统或安装流程要求它有执行权限才能被 systemd 正确加载。这是一个保险操作。

⚠️ 注意:通常
.service
文件不需要
+x
权限也能运行,但加上也无害。


2.
systemctl daemon-reload


systemctl daemon-reload

作用:重新加载 systemd 的配置文件。详细说明:当你新增、修改或删除了
.service
文件后,必须运行这条命令,让 systemd 重新读取所有服务配置。否则
systemctl start docker
可能会报错:“Unit docker.service not found”。

类比:就像你修改了网站代码后要“重启服务器”一样,这是让系统“重新感知”服务配置。


3.
systemctl start docker.service


systemctl start docker.service

作用:启动 Docker 服务。详细说明
systemctl start
:启动一个服务。
docker.service
:服务名称。✅ 启动后,Docker 守护进程(
dockerd
)就开始运行了,你可以使用
docker
命令了。

📌 检查是否启动成功:


systemctl status docker

如果看到
active (running)
,说明成功。


4.
systemctl enable docker.service


systemctl enable docker.service

作用:设置 Docker 服务开机自启。输出解释


Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /etc/systemd/system/docker.service

systemd 创建了一个符号链接(软链接),指向你的服务文件。这样系统在启动时就会自动加载并启动 Docker。

结果:下次服务器重启,Docker 会自动启动,无需手动干预。


🐳
docker ps -a
是什么意思?


docker ps -a

这是 查看所有容器状态的核心命令

参数解释:


docker ps
:列出正在运行的容器。
-a

--all
:显示 所有容器,包括:正在运行的(running)已停止的(exited)曾经运行过但现在不存在的(除非用
--no-trunc

输出示例:


CONTAINER ID   IMAGE          COMMAND                  CREATED        STATUS                     PORTS                  NAMES
d9b100f2f636   nginx:latest   "nginx -g 'daemon of…"   2 minutes ago  Up 2 minutes               0.0.0.0:80->80/tcp     web-server
a7c6a5b4c8d9   mysql:8.0      "docker-entrypoint.s…"   5 hours ago    Exited (0) 3 hours ago                            db-server

字段说明:

列名 含义

CONTAINER ID
容器唯一 ID(短格式)

IMAGE
使用的镜像名称

COMMAND
容器启动时运行的命令

CREATED
容器创建时间

STATUS
当前状态(运行中、已停止等)

PORTS
端口映射情况

NAMES
容器名称(自动生成或手动指定)

✅ 总结:

命令 目的

chmod +x docker.service
确保服务文件可执行(保险操作)

systemctl daemon-reload
刷新 systemd 配置

systemctl start docker
启动 Docker 服务

systemctl enable docker
设置开机自启

docker ps -a
查看当前所有容器状态(确认 Docker 是否正常工作)

💡 小贴士

如果
docker ps -a
报错:
Cannot connect to the Docker daemon

→ 说明 Docker 没启动成功,检查:
systemctl status docker

查看 Docker 版本:
docker --version

查看详细信息:
docker info


你现在已经成功启动了 Docker!接下来可以尝试:


docker run hello-world

3.3 配置daemon.json

/etc/docker/daemon.json


{
  "registry-mirrors": [
    "https://dockerhub.icu",
    "https://docker.ckyl.me",
    "https://docker.awsl9527.cn",
    "https://docker.m.daocloud.io",
    "https://docker.laoex.link"
  ]
}

3.4 重新加载


systemctl daemon-reload
systemctl restart docker 
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容