Linux 离线安装 Docker 和 Docker Compose 最新版 的完整指南

一、准备工作

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
相关推荐
chlk12321 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑21 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
小p2 天前
docker学习7:docker 容器的通信方式
docker
小p2 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p2 天前
docker学习3:docker是怎么实现的?
docker
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux