You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无网络CentOS8服务器安装Docker的Ansible脚本需求

离线CentOS8服务器安装Docker的Ansible脚本方案

一、先在联网的CentOS8机器上准备离线资源

在有网络的测试机器上执行以下命令,下载所有需要的安装包和配置文件:

  1. 安装yumdownloader(如果未安装):
yum install -y yum-utils
  1. 创建存放离线包的目录:
mkdir -p /tmp/docker-packages
  1. 下载yum-utils及其全部依赖包:
yumdownloader --resolve --destdir=/tmp/docker-packages yum-utils
  1. 添加Docker官方源并下载Docker相关组件包:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yumdownloader --resolve --destdir=/tmp/docker-packages docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 下载Docker repo配置文件:
curl https://download.docker.com/linux/centos/docker-ce.repo -o /tmp/docker-packages/docker-ce.repo
  1. 打包所有资源:
tar -czf /tmp/docker-packages.tar.gz -C /tmp docker-packages

将生成的docker-packages.tar.gz传到Ansible控制节点的指定目录,比如/opt/offline-resources/。

二、离线环境的Ansible部署脚本

以下是适配离线场景的playbook,注意替换变量中的路径为你实际的路径:

---
- hosts: your_offline_servers  # 替换为你的离线服务器组名或IP
  become: true
  vars:
    docker_package_dir: "/opt/docker-packages"  # 目标服务器上的离线包存储目录
    control_node_package_path: "/opt/offline-resources/docker-packages.tar.gz"  # 控制节点上的压缩包路径
    local_repo_file: "/etc/yum.repos.d/docker-local.repo"

  tasks:
    # 卸载旧版本Docker(如果存在)
    - name: 清理旧版Docker组件
      yum:
        name:
          - docker
          - docker-client
          - docker-client-latest
          - docker-common
          - docker-latest
          - docker-latest-logrotate
          - docker-logrotate
          - docker-engine
        state: absent
        autoremove: yes

    # 创建离线包存放目录
    - name: 创建离线包存储目录
      file:
        path: "{{ docker_package_dir }}"
        state: directory
        mode: '0755'

    # 上传离线包到目标服务器
    - name: 上传Docker离线压缩包
      copy:
        src: "{{ control_node_package_path }}"
        dest: "{{ docker_package_dir }}/"
        mode: '0644'

    # 解压离线包
    - name: 解压离线包文件
      unarchive:
        src: "{{ docker_package_dir }}/docker-packages.tar.gz"
        dest: "{{ docker_package_dir }}"
        remote_src: yes

    # 配置本地YUM源
    - name: 写入Docker本地源配置
      copy:
        content: |
          [docker-local]
          name=Docker Local Repository
          baseurl=file://{{ docker_package_dir }}/docker-packages
          gpgcheck=0
          enabled=1
        dest: "{{ local_repo_file }}"
        mode: '0644'

    # 离线安装yum-utils
    - name: 安装yum-utils工具
      yum:
        name: "{{ docker_package_dir }}/docker-packages/yum-utils-*.rpm"
        state: present
        disable_gpg_check: yes

    # 离线安装Docker核心组件
    - name: 安装Docker相关包
      yum:
        name:
          - "{{ docker_package_dir }}/docker-packages/docker-ce-*.rpm"
          - "{{ docker_package_dir }}/docker-packages/docker-ce-cli-*.rpm"
          - "{{ docker_package_dir }}/docker-packages/containerd.io-*.rpm"
          - "{{ docker_package_dir }}/docker-packages/docker-buildx-plugin-*.rpm"
          - "{{ docker_package_dir }}/docker-packages/docker-compose-plugin-*.rpm"
        state: present
        disable_gpg_check: yes

    # 启动并设置Docker开机自启
    - name: 启动Docker服务并配置开机自启
      service:
        name: docker
        state: started
        enabled: yes

三、注意事项

  • 确保联网机器和离线机器的CentOS8版本完全一致,避免出现包依赖不兼容问题。
  • 执行yumdownloader时必须加--resolve参数,自动下载所有依赖包,否则离线安装会报错缺少依赖。
  • 如果目标服务器有其他Docker相关repo配置,建议暂时禁用,避免安装时优先尝试网络源。

内容的提问来源于stack exchange,提问作者TinA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:15:33