• 通过 Ansible 安装 Docker


    本文的演示环境为 ubuntu 16.04。

    先在 Ansible Galaxy 搜索 docker,由 geerlingguy 贡献的 docker role 是目前最受欢迎的:

    通过 ansible-galaxy 命令可以把上面搜索到的 role 安装到本地:

    $ ansible-galaxy install geerlingguy.docker

    了解 docker role 的基本配置

    我们安装的 geerlingguy.docker role 的主要配置文件为:~/.ansible/roles/geerlingguy.docker/defaults/main.yml。下面介绍一下其中的一些比较重要的配置项。

    # Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition).
    docker_edition: 'ce'
    docker_package: "docker-{{ docker_edition }}"
    docker_edition 变量用来指定 docker 的版本,ce 代表社区版,ee 代表企业版。

    docker_package_state: present
    通过设置 docker_package_state 变量为 present、missing 或 latest,可以是安装 docker 还是卸载 docker 已经安装 docker 的最新版本。

    docker_service_state: started
    docker_service_enabled: true
    docker_restart_handler_state: restarted
    docker_service_state 控制 docker daemon 的状态,docker_service_enabled 控制在启动主机时是否启动 docker daemon。

    docker_install_compose: true
    docker_compose_version: "1.22.0"
    docker_compose_path: /usr/local/bin/docker-compose
    安装 docker-compose。

    docker_apt_release_channel: stable
    docker_apt_arch: amd64
    docker_apt_repository: "deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
    docker_apt_ignore_key_error: True
    对于 Ubuntu 来说,可以选择处理器架构以及稳定版的 docker。

    安装 docker

    创建 playbook 文件 pb_docker.yml,其中引用已经安装好的 role 来完成 docker 的安装:

    ---
    - hosts: dockerhost
      vars:
        docker_users:
          - nick
      roles:
        - role: geerlingguy.docker
          become: yes

    我们同时设置了变量 docker_users,把用户 nick 添加到 docker 组。注意,请在 /etc/ansible/hosts 文件中添加名称为 dockerhost 的组。然后执行下面的命令就可以了:

    $ ansible-playbook -u nick pb_docker.yml

    检查安装结果

    使用下面的命令检查安装的 docker 版本:

    $ docker version

    下面的命令可以查看 docker-compose 的版本:

    $ docker-compose -v

    顺便看一下是不是把用户 nick 加入了 docker 组:

  • 相关阅读:
    Java Web 项目学习(二) 发送邮件
    Java Web 项目学习(一) 项目调试与版本控制
    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement
    拓扑排序
    Java中的<< 和 >> 和 >>>
    Java Web 项目学习(一) Spring MVC 入门
    Java Web 项目学习(一) Spring 入门
    oracleDBA-D1
    Linux运维(3年以内)
    数据库DBA(3年以内需求)
  • 原文地址:https://www.cnblogs.com/sparkdev/p/9962904.html
Copyright © 2020-2023  润新知