内网服务器没网怎么办?手把手教你用Docker-26.1.1.tgz离线部署Docker环境(附systemd服务配置)

张开发
2026/5/21 23:45:48 15 分钟阅读
内网服务器没网怎么办?手把手教你用Docker-26.1.1.tgz离线部署Docker环境(附systemd服务配置)
内网服务器离线部署Docker全攻略从安装包到镜像仓库的完整闭环在金融、军工、医疗等对网络安全要求极高的行业场景中服务器通常被部署在严格隔离的内网环境中。这种架构虽然保障了数据安全却给容器化部署带来了特殊挑战——无法直接访问Docker官方仓库进行在线安装和镜像拉取。本文将系统性地解决这个痛点不仅涵盖基础安装步骤更会深入探讨如何在内网环境中构建可持续的容器化运维体系。1. 离线环境下的Docker部署准备1.1 外网环境资源准备在开始内网部署前需要在外网机器上完成以下准备工作# 下载指定版本的Docker二进制包 wget https://download.docker.com/linux/static/stable/x86_64/docker-26.1.1.tgz # 验证文件完整性推荐 sha256sum docker-26.1.1.tgz # 对比输出与官网提供的校验值关键注意事项选择与内网服务器架构匹配的版本x86_64/aarch64建议下载.tgz格式的静态二进制包而非.rpm/.deb避免依赖问题同时下载containerd和runc的兼容版本如有需要1.2 安全传输方案选择根据企业安全策略可选择以下传输方式传输方式适用场景安全级别速度SCP/SFTP单文件传输SSH加密中等物理介质大文件/批量传输物理隔离慢内部仓库频繁更新场景需审批快提示使用SCP传输时建议先压缩为加密压缩包传输后再在内网解压2. 内网服务器安装实战2.1 二进制文件部署# 解压安装包 tar -zxvf docker-26.1.1.tgz # 移动可执行文件到系统目录 sudo cp docker/* /usr/bin/ # 验证可执行权限 ls -l /usr/bin/dockerd常见问题排查若出现GLIBC版本不兼容需在外网环境编译对应版本的静态二进制SELinux可能导致权限问题可临时设置为permissive模式测试2.2 Systemd服务深度配置创建/etc/systemd/system/docker.service文件[Unit] DescriptionDocker Application Container Engine Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify EnvironmentFile-/etc/default/docker ExecStart/usr/bin/dockerd --iptablesfalse --log-driverjson-file --log-opt max-size100m ExecReload/bin/kill -s HUP $MAINPID TimeoutSec0 RestartSec2 Restartalways [Install] WantedBymulti-user.target关键参数解析--iptablesfalse在内网环境中通常不需要自动配置iptables规则--log-driver建议使用json-file而非journald避免日志系统依赖EnvironmentFile用于集中管理环境变量3. 离线镜像管理方案3.1 单镜像导入导出在外网机器执行docker pull nginx:alpine docker save -o nginx_alpine.tar nginx:alpine在内网机器加载docker load -i nginx_alpine.tar3.2 批量镜像管理策略推荐使用docker-compose定义服务栈version: 3.8 services: web: image: nginx:alpine ports: - 8080:80 db: image: postgres:13 environment: POSTGRES_PASSWORD: example导出整个服务栈docker-compose config stack.yml docker save $(docker-compose config | awk {if ($1 image:) print $2}) -o stack_images.tar4. 构建内网私有仓库4.1 简易Registry部署# 在外网准备registry镜像 docker pull registry:2 docker save -o registry.tar registry:2 # 内网加载后运行 docker load -i registry.tar docker run -d -p 5000:5000 --restartalways --name registry registry:24.2 镜像推送与拉取# 标记镜像指向内网仓库 docker tag nginx:alpine 192.168.1.100:5000/nginx # 推送镜像需配置insecure-registry docker push 192.168.1.100:5000/nginx # 其他节点拉取 docker pull 192.168.1.100:5000/nginx安全增强建议配置TLS证书实现加密传输使用Basic Auth进行访问控制定期清理过期镜像释放存储空间5. 持续维护与优化在内网环境中维护Docker生态需要建立规范的流程版本控制对所有安装包和镜像文件进行版本登记依赖管理维护内部文档记录各组件的兼容性矩阵更新机制制定审批流程定期更新基础镜像监控方案部署Prometheus等监控工具时同样采用离线安装实际项目中我们曾遇到因未统一版本导致集群节点兼容性问题。解决方案是建立内部镜像仓库的同时配套维护一个版本控制中心所有部署必须从中心获取经过验证的镜像组合。

更多文章