Linux 环境源码安装 Docker
CentOS 中通过源码方式安装 Docker 27.0.3 的完整步骤,包含命令操作、配置说明及状态验证,核心内容总结如下:
一、安装核心步骤
1. 下载Docker源码包
通过wget
命令从清华镜像源拉取Docker 27.0.3的压缩包(避免官方源下载缓慢),命令如下:
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-28.3.3.tgz
2. 解压源码包
使用tar
命令将压缩包解压到当前目录,解压后会生成docker
文件夹,命令如下:
tar xzf docker-28.3.3.tgz
3. 复制Docker指令到系统目录
将解压后docker
文件夹内的所有执行指令,复制到系统默认的二进制命令目录/usr/bin/
(确保全局可调用Docker命令),命令如下:
cp docker/* /usr/bin/
4. 配置Docker为systemd服务
通过创建docker.service
文件,将Docker注册为系统服务(支持systemctl
管理),具体操作如下:
-
- 创建服务文件:
vim /etc/systemd/system/docker.service
- 创建服务文件:
-
- 写入以下配置内容(文件分3个核心模块,各模块作用见注释):
[Unit] Description=Docker Application Container Engine # 服务描述 Documentation=https://docs.docker.com # 官方文档链接 After=network-online.target firewalld.service # 启动顺序:在网络、防火墙服务后启动 Wants=network-online.target # 依赖网络服务,网络失败则Docker不启动[Service] Type=notify # 启动类型:服务就绪后通知systemd ExecStart=/usr/bin/dockerd # 启动命令:启动Docker守护进程 ExecReload=/bin/kill -s HUP $MAINPID # 重载命令:发送HUP信号重载守护进程 LimitNOFILE=infinity # 无限制打开文件数 LimitNPROC=infinity # 无限制进程数 LimitCORE=infinity # 无限制核心文件大小 TimeoutStartSec=0 # 启动无超时限制 Delegate=yes # 子进程继承父进程控制组/资源限制 KillMode=process # 停止策略:仅向主进程发信号 Restart=on-failure # 重启策略:仅服务失败时重启 StartLimitBurst=2 # 30秒内最多启动2次 StartLimitInterval=30s[Install] WantedBy=multi-user.target # 依赖目标:多用户模式下启动
5. 设置服务文件权限与重载配置
-
- 调整服务文件权限:
chmod a-x /etc/systemd/system/docker.service
(a-x
含义:对所有用户移除执行权限,确保服务文件仅用于配置,不被直接执行)
- 调整服务文件权限:
-
- 重载systemd配置(使新服务生效):网页未明确写出
systemctl daemon-reload
,但此步骤为systemd服务配置后的必要操作(隐含在“重新加载配置文件”描述中)。
- 重载systemd配置(使新服务生效):网页未明确写出
6. 启动Docker并验证状态
-
- 启动Docker服务:
systemctl start docker
- 启动Docker服务:
-
- 查看服务运行状态:
systemctl status docker
(需确保状态为“active (running)”)
- 查看服务运行状态:
-
- 验证Docker版本与系统信息:执行
docker info
,关键输出如下:
- Client/Server Version:27.0.3
- 存储驱动:overlay2(基于xfs文件系统)
- 操作系统:CentOS Linux 7 (Core)
- 资源配置:2 CPU、3.683GiB内存
- 初始状态:0个容器、0个镜像,Swarm模式未激活
- 验证Docker版本与系统信息:执行
二、核心说明
- 安装方式:非官方
yum
仓库,而是通过静态源码包直接部署,适用于无网络或需指定版本的场景; - 服务管理:依赖
systemd
(Linux主流服务管理器),支持启动、停止、重载、开机自启(需额外执行systemctl enable docker
); - 环境兼容性:文中示例基于CentOS 7(Kernel 3.10.0-957.el7.x86_64),x86_64架构,其他Linux发行版需调整源码包地址与依赖。