一、准备工作
1. 下载安装包(需在有网络的机器操作):
- Docker 引擎:从官方仓库下载最新二进制包
bash
wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz
- Docker Compose:下载最新二进制文件
bash
wget https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64
2. 传输到目标机器
- 通过 USB、内网传输工具等将文件拷贝至离线服务器的 /opt/docker-offline 目录。
二、安装 Docker
1. 解压并安装
bash
# 解压安装包
tar -zxvf docker-24.0.6.tgz
# 复制二进制文件到系统目录
cp docker/* /usr/bin/
2. 配置 Systemd 服务
bash
vim /etc/systemd/system/docker.service
- 内容如下(根据实际路径调整):
bash
[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
3. 启动服务
bash
# 加载配置
systemctl daemon-reload
# 启动并设置开机自启
systemctl start docker
systemctl enable docker
# 验证安装
docker --version # 应输出 Docker version 24.0.6
三、安装 Docker Compose
1. 安装二进制文件
bash
# 移动并重命名
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 赋予执行权限
chmod +x /usr/local/bin/docker-compose
# 验证版本
docker-compose --version # 应输出 Docker Compose version v2.27.0
2. 创建软链接(可选)
bash
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
四、进阶配置
1. 配置镜像加速(可选)
bash
vim /etc/docker/daemon.json
- 添加国内镜像源(如阿里云):
bash
{
"registry-mirrors": ["https://<your-mirror-id>.mirror.aliyuncs.com"]
}
- 重启服务:
bash
systemctl restart docker
2. 存储目录修改(可选)
bash
vim /etc/docker/daemon.json
- 添加数据存储路径:
bash
{
"data-root": "/opt/docker-data"
}
五、常见问题解决
问题现象 | 解决方案 |
---|---|
docker: command not found |
检查 /usr/bin/docker 是否存在 |
Failed to start docker |
查看日志 journalctl -u docker.service |
Docker Compose 命令失效 |
重新安装二进制文件并赋予权限 |
六、验证安装
bash
# 运行测试容器
docker run hello-world
# 输出应包含 "Hello from Docker!"
七、卸载方法
bash
# 停止服务
systemctl stop docker
systemctl disable docker
# 删除文件
rm -rf /usr/bin/docker*
rm -f /etc/systemd/system/docker.service
# 清理残留
rm -rf /var/lib/docker
八、离线镜像导入
1. 在有网络的机器导出镜像:
bash
docker pull nginx:alpine
docker save -o nginx-alpine.tar nginx:alpine
2. 离线机器导入:
bash
docker load -i nginx-alpine.tar