通过 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 组:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言