插件窝 干货文章 不连外网怎么玩docker

不连外网怎么玩docker

Docker 镜像 nginx 机器 711    来源:    2025-04-28

在不连接外网的情况下使用 Docker,可以通过以下方案实现:


1. 使用本地镜像(推荐)

  • 适用场景:已有镜像文件或能通过离线方式获取镜像。
  • 步骤
    1. 导出/导入镜像(需提前在有网络的机器操作): bash # 在有网络的机器上拉取镜像并导出 docker pull nginx:latest docker save -o nginx.tar nginx:latestnginx.tar 拷贝到离线机器后导入: bash docker load -i nginx.tar
    2. 直接使用本地镜像bash docker run -d --name my-nginx nginx:latest

2. 搭建本地镜像仓库

  • 适用场景:内网多台机器需要共享镜像。
  • 步骤
    1. 在有网络的机器上拉取镜像并推送到私有仓库(如 Harbor 或 Docker Registry): bash docker pull nginx docker tag nginx localhost:5000/nginx docker push localhost:5000/nginx
    2. 将私有仓库的存储目录(/var/lib/registry)打包,拷贝到离线机器并启动仓库: bash docker run -d -p 5000:5000 -v /path/to/registry:/var/lib/registry registry:2
    3. 离线机器从本地仓库拉取镜像: bash docker pull localhost:5000/nginx

3. 使用 Docker 离线安装包

  • 适用场景:完全离线环境部署 Docker。
  • 步骤
    1. Docker 官方仓库 下载离线包(如 docker-20.10.9.tgz)。
    2. 解压并安装: bash tar xzvf docker-20.10.9.tgz sudo cp docker/* /usr/bin/
    3. 启动 Docker 守护进程: bash sudo dockerd &

4. 离线构建镜像(通过 Dockerfile)

  • 适用场景:需自定义镜像但无外网。
  • 步骤
    1. 将依赖文件(如 Dockerfile、二进制文件、安装包)拷贝到离线机器。
    2. 使用本地文件构建镜像: dockerfile FROM alpine:3.12 COPY local-package.tar /app/ RUN tar -xvf /app/local-package.tar 构建命令: bash docker build -t my-app .

5. 使用预构建的离线环境

  • 工具推荐
    • Minikube:支持离线模式(需提前下载镜像)。
    • K3s:轻量级 Kubernetes,可离线部署。

注意事项

  • 镜像依赖:确保所有依赖(如基础镜像、库文件)已离线提供。
  • 存储路径:离线机器需有足够磁盘空间存放镜像。
  • 版本兼容:保持 Docker 客户端和服务器版本一致。

通过以上方法,即使没有外网也能正常使用 Docker。根据实际需求选择最适合的方案即可。