- name: Start docker daemon service: name: docker state: started - name: Download busybox image docker: image: busybox state: present pull: missing - name: Run a small script in busybox docker: image: busybox state: reloaded pull: always command: "nc -l -p 2000 -e xargs -n1 echo hello" detach: True - name: Get the docker container ip set_fact: container_ip="{{docker_containers[0].NetworkSettings.IPAddress}}" - name: Try to access the server shell: "echo 'world' | nc {{ container_ip }} 2000" register: docker_output - name: check that the script ran assert: that: - "'hello world' in docker_output.stdout_lines" - name: Run a script that sets environment in busybox docker: image: busybox state: reloaded pull: always env: TEST: hello command: '/bin/sh -c "nc -l -p 2000 -e xargs -n1 echo $TEST"' detach: True - name: Get the docker container ip set_fact: container_ip="{{docker_containers[0].NetworkSettings.IPAddress}}" - name: Try to access the server shell: "echo 'world' | nc {{ container_ip }} 2000" register: docker_output - name: check that the script ran assert: that: - "'hello world' in docker_output.stdout_lines" - name: Remove containers shell: "docker rm -f $(docker ps -aq)" - name: Remove all images from the local docker shell: "docker rmi -f $(docker images -q)"