当前位置: 首页 > news >正文

如何进行 Docker 和 Docker Compose 离线部署?

离线部署 Docker 和 Docker Compose 主要适用于内网服务器或安全隔离环境,核心是通过预先下载二进制包和镜像文件,手动配置系统服务来实现安装,无需依赖在线仓库。

先说结论:离线部署不依赖在线仓库,适合无外网权限的生产或测试环境,关键在于二进制文件完整和服务配置正确。

  • 适合:内网服务器、安全隔离区、批量自动化部署场景
  • 先准备:在有网机器下载对应架构的二进制包和所需镜像文件
  • 验收:通过 version 命令和服务状态确认安装完整且可运行

命令速用版

以下是核心操作命令的速查,假设安装包已上传至当前目录:

# 解压 Docker 二进制包
tar -xzvf docker-24.0.9.tgz# 复制二进制文件到系统路径
cp docker/* /usr/bin/# 创建 systemd 服务文件(需 root 权限)
vi /etc/systemd/system/docker.service# 重载配置并启动服务
systemctl daemon-reload
systemctl enable docker
systemctl start docker# 导入离线镜像
docker load -i image.tar

为什么会这样

常规安装方式依赖包管理器(如 yum 或 apt)从在线仓库拉取文件,而离线环境无法连接外网。Docker 本质上是一组二进制文件配合一个后台守护进程(dockerd),只要将二进制文件放入系统路径,并配置好 systemd 服务文件管理其启动,即可在没有网络的情况下运行。Docker Compose 同理,它是一个独立的二进制文件,放入路径即可使用。

分步处理

1. 下载离线安装包

在有网络的机器上,访问 Docker 官方静态下载页或 GitHub 发布页,下载对应操作系统架构(如 x86_64 或 aarch64)的静态二进制包。Docker Compose 需下载对应的二进制文件。

2. 传输文件

使用 scp、U 盘或内部文件服务器,将 Docker 压缩包、Compose 二进制文件以及需要运行的业务镜像包(.tar 格式)上传至离线服务器的临时目录,如 /tmp 或 /srv。

3. 安装 Docker 二进制

解压下载的 Docker 压缩包,将其中的二进制文件(如 docker、dockerd、containerd 等)复制到系统执行路径,通常建议放在 /usr/bin/ 或 /usr/local/bin/ 目录下。

4. 配置系统服务

在 /etc/systemd/system/ 目录下创建 docker.service 文件。内容需包含 Unit、Service 和 Install 段落,指定 ExecStart 为 /usr/bin/dockerd。配置完成后执行 systemctl daemon-reload 使配置生效。

5. 安装 Docker Compose

将下载的 docker-compose 二进制文件复制到系统路径(如 /usr/local/bin/),并重命名为 docker-compose 或 docker compose,确保文件具有执行权限(chmod +x)。

6. 加载业务镜像

使用 docker load -i 命令导入预先导出的镜像包。若使用 Docker Compose 编排,需确保 compose.yml 中引用的镜像均已加载到本地。

怎么验证是否生效

执行 docker version 和 docker-compose version 查看版本号输出,若无报错则说明二进制文件路径配置正确。执行 systemctl status docker 检查服务状态是否为 active (running)。尝试运行 docker run hello-world 或导入的测试镜像,确认容器能正常启动。

常见坑

架构不匹配:下载二进制包时必须确认 CPU 架构(如 amd64 与 arm64 不通用),否则无法运行。

服务文件路径错误:docker.service 中 ExecStart 指向的路径必须与实际二进制文件存放路径一致,否则服务启动失败。

防火墙与 SELinux:部分系统默认开启防火墙或 SELinux,可能拦截 Docker 网络或文件访问,内网测试环境可根据安全策略临时关闭或配置放行。

镜像依赖缺失:离线部署应用时,若 compose 文件依赖多个镜像,需确保所有相关镜像都已导出并导入,否则容器会卡在 Pulling 状态。

参考来源

  • CSDN 博客 - 一键离线部署 Docker+Docker Compose(附脚本)
  • Docker 最佳实战:Docker 和 Docker Compose 离线部署实战
  • 麒麟系统 (Linux) 离线安装 Docker 和 Docker Compose
  • Docker&Docker Compose 安装 (离线 + 在线)
  • Docker 和 Docker-compose 离线部署指南

原文链接:https://www.zjcp.cc/ask/10164.html

http://www.jsqmd.com/news/770194/

相关文章:

  • Applite:如何在macOS上通过图形界面轻松管理Homebrew Casks
  • AhMyth Android RAT:你的第一台Android设备远程管理控制台 [特殊字符]
  • 构建AI驱动的无人值守开发流水线:任务编排与智能监控实践
  • 进化强化学习实战:从AlphaEvo项目解析ERL框架设计与实现
  • 5分钟快速上手:Kohya_ss完整指南,打造专属AI绘画模型
  • CUDA Agent:强化学习优化GPU内核性能
  • 2026年北京固废处理公司口碑榜:垃圾处理、工业固废、大宗固废、建筑垃圾、餐厨垃圾、新三样固废、固废资源化利用优选指南 - 海棠依旧大
  • 3分钟掌握批量照片水印:自动添加相机参数和品牌Logo的终极指南
  • 从Kali到实战:手把手教你用CobaltStrike 4.0搭建渗透测试环境(附汉化与避坑指南)
  • Kindle Comic Converter:电子墨水屏漫画阅读的终极解决方案
  • 从安装报错到完美出图:手把手带你用R包ChIPQC搞定ChIP-seq质控报告(附常见错误解决方案)
  • 本地优先AI智能体maxclaw:Go语言构建的低内存、全本地开发助手
  • 为什么87%的敏捷转型失败?AISMM模型揭示真相(2024最新Gartner验证的5大断层点)
  • Linux/Win双环境实测:Finereport10到11升级工具完整操作与排错记录
  • 为什么我放弃了MASM选择了NASM?聊聊汇编器选择的那些事儿
  • 基于Python与Discord的社区智能问答机器人设计与实现
  • AWS CodeBuild 构建码云/GitHub 私有仓库实战
  • AI应用上下文管理:模块化工具解决大模型输入优化难题
  • 3DS FBI Link:Mac用户必备的无线文件传输神器
  • 摄影师的智能助手:3分钟学会批量添加专业水印
  • 物理世界模型PhyGenesis:自动驾驶仿真的关键技术
  • Android 13音频服务启动时,AudioPolicyService和AudioFlinger到底在后台偷偷干了啥?
  • CoPaw:本地化AI助手部署与自定义技能开发全攻略
  • PLADA:仅传输伪标签的高效数据集服务方案
  • 保姆级教程:手把手教你用ISOLAR-B配置AUTOSAR CANIF模块(含DBC导入避坑指南)
  • 5步搭建开源心电监测系统:AD8232方案让专业级心电图监测触手可及
  • 从XGBoost/LightGBM转战CatBoost?我踩过的坑和性能调优心得都在这了
  • 如何在 Taotoken 平台快速接入 OpenAI 兼容 API 并调用 Python 示例
  • 5分钟掌握暗黑破坏神2存档编辑:d2s-editor完整使用指南
  • devmem:基于本地SQLite与混合搜索的项目知识库构建工具