Description: Install and configure docker for debian-based distros.
Field | Value |
---|---|
Readme update | 14/06/2025 |
These are static variables with lower priority
Var | Type | Value | Required | Title |
---|---|---|---|---|
install_docker_version | str | latest |
false | Docker version to install |
install_docker_start_service | bool | True |
false | Start Docker service |
install_docker_data_dir | str | /var/lib/docker |
false | Docker data directory |
install_docker_users | list | [] |
false | Additional Docker group users |
install_docker_daemon_options | dict | {} |
false | Docker daemon options |
install_docker_python_packages | bool | False |
false | Install Docker Python packages |
install_docker_compose | bool | False |
false | Install Docker Compose |
install_docker_compose_version | str | latest |
false | Docker Compose version |
install_docker_install_completion | bool | True |
false | Install shell completions |
install_docker_completion_shell | NoneType | None |
false | Shell type for completion |
🖇️ Full descriptions for vars in defaults/main.yml
install_docker_version: Specifies the version of Docker to install.
Use 'latest' to always get the most recent release from Docker's GitHub repository.
You can also specify a version tag (e.g., '24.0.7').
install_docker_start_service: Determines whether the Docker service should be started after installation.
Set to true to start the service automatically.
install_docker_data_dir: Sets the root directory used by Docker to store container data, images, and volumes.
Changing this may require updating the daemon configuration and moving existing data.
install_docker_users: List of system users to be added to the 'docker' group.
This allows the specified users to run Docker commands without sudo.
install_docker_daemon_options: Dictionary of custom options to include in the Docker daemon configuration (daemon.json).
Common options include log-driver, storage-driver, and insecure registries.
install_docker_python_packages: Whether to install Python packages required for Ansible Docker modules (e.g., docker-py).
Set to true if you plan to manage containers via Ansible tasks.
install_docker_compose: Determines whether Docker Compose should be installed.
If true, the version specified in install_docker_compose_version will be downloaded from GitHub.
install_docker_compose_version: Specifies the version of Docker Compose to install from GitHub releases.
Use 'latest' to install the most recent stable version, or specify a version tag (e.g., 'v2.27.0').
install_docker_install_completion: Controls whether Docker CLI autocompletion scripts should be installed.
Enhances shell usability for Docker commands.
install_docker_completion_shell: Defines the shell type (e.g., bash, zsh) for which Docker completion scripts should be installed.
Leave empty to disable or auto-detect based on user shell environment.
These are variables with higher priority
Var | Type | Value | Required | Title |
---|---|---|---|---|
install_docker_binary_path | str | /usr/local/bin |
false | Docker binary installation path |
install_docker_compose_path | str | {{ install_docker_binary_path }}/docker-compose |
false | Docker Compose binary path |
install_docker_user | str | root |
false | Owner user for Docker files |
install_docker_group | str | docker |
false | Docker system group |
install_docker_daemon_dir | str | /etc/docker |
false | Docker daemon config directory |
install_docker_service_list | list | ['containerd', 'docker'] |
false | Docker-related system services |
install_docker_socket_list | list | ['docker'] |
false | Docker-related Unix sockets |
install_docker_architecture_map | dict | {'armv7l': 'armhf', 'armv6l': 'armhf'} |
false | Docker architecture mapping |
install_docker_python_packages_list | list | [{'name': 'python3-docker', 'version': 'latest', 'state': 'present'}] |
false | Python packages for Docker support |
install_docker_sysctl_entries | dict | {'net.bridge.bridge-nf-call-iptables': 1, 'net.bridge.bridge-nf-call-ip6tables': 1} |
false | Docker-related sysctl entries |
install_docker_modprobe_modules | list | ['br_netfilter'] |
false | Kernel modules for Docker |
install_docker_github_api | str | https://api.github.com/repos |
false | GitHub API base URL |
install_docker_github_url | str | https://github.com |
false | GitHub base URL |
install_docker_github_project | str | moby/moby |
false | GitHub project for Docker |
install_docker_repository_url | str | https://download.docker.com/linux/static/stable/{{ install_docker_architecture_map[ansible_architecture]¦default(ansible_architecture) }} |
false | Docker release repository URL |
install_docker_compose_github_project | str | docker/compose |
false | GitHub project for Docker Compose |
🖇️ Full Descriptions for vars in vars/main.yml
install_docker_binary_path: Filesystem path where Docker binaries will be installed
install_docker_compose_path: Path where the Docker Compose binary will be installed
install_docker_user: System user that owns Docker-related files and directories
install_docker_group: Group used for granting access to the Docker socket
install_docker_daemon_dir: Filesystem path to Docker's daemon configuration files
install_docker_service_list: List of system services managed by the role during install
install_docker_socket_list: List of Docker socket names to check/manage
install_docker_architecture_map: Maps Ansible system architecture names to GitHub Docker release architecture names
install_docker_python_packages_list: List of Python packages required for Docker Ansible modules
install_docker_sysctl_entries: Kernel sysctl parameters required for Docker networking
install_docker_modprobe_modules: List of kernel modules to load for Docker functionality
install_docker_github_api: Base URL for GitHub API used to fetch Docker release data
install_docker_github_url: Base URL for GitHub used to construct download links
install_docker_github_project: GitHub repository for Docker Engine releases
install_docker_repository_url: URL to fetch Docker static binaries based on system architecture
install_docker_compose_github_project: GitHub repository for Docker Compose releases
Name | Module | Has Conditions |
---|---|---|
Docker ¦ Add specified users to group {{ install_docker_group }} | ansible.builtin.user | False |
Docker ¦ Copy daemon.json template | ansible.builtin.template | False |
Docker ¦ Set reload-check & restart-check variable | ansible.builtin.set_fact | True |
Docker ¦ Ensure modprobe modules are loaded | community.general.modprobe | False |
Docker ¦ Ensure sysctl options are proprerly set | ansible.posix.sysctl | False |
Docker ¦ Set restart-check variable | ansible.builtin.set_fact | True |
Docker ¦ Get docker completion | ansible.builtin.command | False |
Docker ¦ Install completion for bash | block | True |
Docker ¦ Ensure /etc/bash_completion.d directory exists | ansible.builtin.file | False |
Docker ¦ Copy bash completion | ansible.builtin.copy | False |
Name | Module | Has Conditions |
---|---|---|
Docker ¦ Get latest release of docker | block | True |
Docker ¦ Get latest docker release from github api | ansible.builtin.uri | False |
Docker ¦ Set wanted docker version to latest tag | ansible.builtin.set_fact | False |
Docker ¦ Set wanted docker version to {{ install_docker_version }} | ansible.builtin.set_fact | True |
Docker ¦ Get current docker version | block | False |
Docker ¦ Stat docker version file | ansible.builtin.stat | False |
Docker ¦ Get current docker version | ansible.builtin.slurp | True |
Docker ¦ Download and install docker binaries | block | True |
Docker ¦ Set docker package name to download | ansible.builtin.set_fact | False |
Docker ¦ Download docker binary archive | ansible.builtin.get_url | False |
Docker ¦ Create temporary directory for archive decompression | ansible.builtin.file | False |
Docker ¦ Unpack docker archive | ansible.builtin.unarchive | False |
Docker ¦ Get list of binaries | ansible.builtin.find | False |
Docker ¦ Copy docker binaries to {{ install_docker_binary_path }} | ansible.builtin.copy | False |
Docker ¦ Update docker version file | ansible.builtin.copy | False |
Docker ¦ Set restart-check variable | ansible.builtin.set_fact | False |
Docker ¦ Cleanup temporary directory | ansible.builtin.file | False |
Docker ¦ Copy systemd service files for docker | ansible.builtin.template | False |
Docker ¦ Copy systemd socket files for docker | ansible.builtin.template | False |
Docker ¦ Set reload-check & restart-check variable | ansible.builtin.set_fact | True |
Name | Module | Has Conditions |
---|---|---|
Docker ¦ Get release for compose:{{ install_docker_compose_version }} | ansible.builtin.uri | False |
Docker ¦ Check current compose version | ansible.builtin.command | False |
Docker ¦ Set facts for wanted compose release | ansible.builtin.set_fact | True |
Docker ¦ Set facts for current compose release | ansible.builtin.set_fact | True |
Docker ¦ Remove old compose binary if different | ansible.builtin.file | True |
Docker ¦ Download and install compose:{{ install_docker_compose_version }} | ansible.builtin.get_url | True |
Name | Module | Has Conditions |
---|---|---|
Install docker packages | ansible.builtin.include_role | False |
Name | Module | Has Conditions |
---|---|---|
Docker ¦ Set reload-check & restart-check variable | ansible.builtin.set_fact | False |
Import prerequisites.yml | ansible.builtin.include_tasks | False |
Import install.yml | ansible.builtin.include_tasks | False |
Import install_compose.yml | ansible.builtin.include_tasks | True |
Import install_python_docker.yml | ansible.builtin.include_tasks | True |
Import configure.yml | ansible.builtin.include_tasks | False |
Docker ¦ Enable sockets: {{ install_docker_socket_list }} | ansible.builtin.service | False |
Docker ¦ Enable services: {{ install_docker_service_list }} | ansible.builtin.service | False |
Docker ¦ Reload systemd daemon | ansible.builtin.systemd | True |
Docker ¦ Reload services: docker | ansible.builtin.service | True |
Docker ¦ Start services: {{ install_docker_service_list }} | ansible.builtin.service | True |
Name | Module | Has Conditions |
---|---|---|
Create group {{ install_docker_group }} | ansible.builtin.group | False |
Create directory {{ install_docker_daemon_dir }} | ansible.builtin.file | False |
Create directory {{ install_docker_data_dir }} | ansible.builtin.file | False |
Bertrand Lanson
license (BSD, MIT)
2.10
- Ubuntu: ['focal', 'jammy', 'noble']
- Debian: ['bullseye', 'bookworm']
No dependencies specified.