Skip to content

Repository files navigation

Ansible Role: Docker

CI GitHub issues GitHub stars GitHub forks Maintenance

Modern Ansible role that installs Docker Engine and Docker Compose on Linux distributions including Ubuntu, Debian, and RHEL/CentOS.

Requirements

  • Ansible 2.12 or higher
  • Supported OS:
    • Ubuntu 22.04, 24.04, 26.04
    • Debian 11, 12, 13
    • RHEL/CentOS 8, 9, 10
    • Rocky Linux 8, 9, 10

Role Variables

Docker Configuration

Docker release channel:

docker_release_channel: stable  # Options: stable, test

Docker version:

docker_version: latest  # Use 'latest' or specific version like '24.0.7'

Docker Compose configuration:

docker_compose_version: latest              # Use 'latest' or specific version
docker_compose_install_method: plugin       # Options: plugin (recommended), standalone

Service configuration:

docker_service_state: started
docker_service_enabled: true
docker_start_on_boot: true

Package management:

docker_package_state: present  # Options: present (recommended), latest

User Management

Docker users:

docker_users: []
# Example:
# docker_users:
#   - alice
#   - bob

A list of system users to be added to the docker group (allows running Docker without sudo).

Advanced Configuration

Docker daemon options:

docker_daemon_options: {}
# Example:
# docker_daemon_options:
#   log-driver: "json-file"
#   log-opts:
#     max-size: "10m"
#     max-file: "3"

Security options:

docker_userns_remap: false                 # Enable user namespace remapping
docker_userns_remap_user: "dockremap"      # User for namespace remapping
docker_rootless: false                     # Install rootless Docker

Network configuration:

docker_tcp_listen: false                   # Enable TCP socket (WARNING: Security risk)
docker_tcp_port: 2376
docker_tls_enabled: false

Storage configuration:

docker_storage_driver: ""                  # Leave empty for default

Example Playbook

Basic Installation

---
- hosts: all
  become: yes
  roles:
    - rosslopez.docker

Advanced Configuration

---
- hosts: docker_hosts
  become: yes
  vars:
    docker_release_channel: stable
    docker_version: "24.0.7"
    docker_compose_version: "2.24.0"
    docker_users:
      - alice
      - bob
    docker_daemon_options:
      log-driver: "json-file"
      log-opts:
        max-size: "10m"
        max-file: "3"
  roles:
    - rosslopez.docker

Rootless Docker Installation

---
- hosts: development
  become: yes
  vars:
    docker_rootless: true
    docker_users:
      - developer
  roles:
    - rosslopez.docker

Dependencies

None. This role uses modules included with ansible-core.

License

MIT

Author Information

This role was created by Ross Lopez.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages