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
相关推荐
ZZH1120KQ3 分钟前
Linux账号和权限管理
linux·运维
@Liu_GuoXing9 分钟前
Registry和docker有什么关系?
运维·docker·容器·registry
XMAIPC_Robot24 分钟前
基于 ZYNQ UltraScale+ OV5640的高速图像传输系统设计,支持国产替代
linux·数码相机·fpga开发·架构·边缘计算
水水沝淼㵘28 分钟前
嵌入式开发学习日志(linux系统编程--系统编程之 进程间通信IPC)Day32
linux·运维·学习
IT小饕餮34 分钟前
linux登陆硬件检测脚本
linux·运维·服务器
love530love1 小时前
Windows 下部署 SUNA 项目:虚拟环境尝试与最终方案
前端·人工智能·windows·后端·docker·rust·开源
碎梦归途2 小时前
Linux 软件安装方式全解(适用于 CentOS/RHEL 系统)
linux·运维·centos
啃火龙果的兔子2 小时前
CentOS 7.9 安装 宝塔面板
linux·运维·centos
DexterLien3 小时前
基于 Alpine 定制单功能用途(kiosk)电脑
linux·alpine·kiosk
小和尚敲木头3 小时前
krpano 字符串拼接,传参。
java·linux·前端