我正在为启动docker damon,docker container,docker exec 开发ansible脚本。在docker容器中启动docker容器后,我需要启动一些服务。
我安装了docker引擎,配置并使用远程机器中的某个docker容器。我习惯用特定的路径启动docker守护进程,因为我需要在路径中存储我的卷和容器。
$docker daemon -g /test/docker
我的问题是启动docker守护程序启动时,但不会转到下一个进程。通过ansible。仍在运行docker daemon。
---
- hosts: webservers
remote_user: root
# Apache Subversion dnf -y install python-pip
tasks:
- name: Start Docker Deamon
shell: docker -d -g /test/docker
become: yes
become_user: root
- name: Start testing docker machine
command: docker start testing
async: True
poll: 0
我按照异步启动process,但它不适用于我,
建议我启动docker守护进程后,如何运行下一个进程。
答案 0 :(得分:3)
要启动docker守护程序,您应该使用ansible service module:
- name: Ensure docker deamon is running
service:
name: docker
state: started
become: true
任何docker守护程序自定义都应放在 /etc/docker/daemon.json 中,如official documentation中所述。在你的情况下,文件看起来像:
{
"graph": "/test/docker"
}
要与容器进行交互,请使用ansible docker_container module:
- name: Ensure My docker container is running
docker_container:
name: testing
image: busybox
state: started
become: true
尽量避免使用shell模块在ansible中做任何事情,因为它可能导致头痛。