--- - name: install docker daemon config when: docker_daemon_config is defined block: - name: create docker config directory file: name: /etc/docker state: directory mode: 0700 - name: write docker daemon config copy: content: "{{ docker_daemon_config | to_nice_json }}\n" dest: /etc/docker/daemon.json notify: restart docker - name: prepare storage volume for /var/lib/docker when: docker_storage is defined vars: storage_volume: "{{ docker_storage | combine({'dest': '/var/lib/docker'}) }}" include_role: name: "storage/{{ docker_storage.type }}/volume" - name: prepare package provider when: docker_pkg_provider != 'distro' include_role: name: "apt-repo/{{ docker_pkg_provider }}" - name: generate apt pin file for docker package when: docker_pkg_version is defined copy: dest: "/etc/apt/preferences.d/{{ docker_pkg_name }}.pref" content: | Package: {{ docker_pkg_name }} Pin: version {{ docker_pkg_version }} Pin-Priority: 1001 - name: remove apt pin file for docker package when: docker_pkg_version is not defined file: path: "/etc/apt/preferences.d/{{ docker_pkg_name }}.pref" state: absent - name: install docker apt: name: - "{{ docker_pkg_name }}{% if docker_pkg_version is defined %}={{ docker_pkg_version }}{% endif %}" - "{{ python_basename }}-docker" state: present allow_downgrade: yes ## TODO: for now this is only needed on Debian Bullseye when using the docker.io package from the official repository - name: install apparmor when: - docker_pkg_provider == 'distro' - ansible_distribution == 'Debian' and (ansible_distribution_major_version | int) == 11 apt: name: apparmor state: present - name: start and enable docker service: name: docker enabled: true state: started