docker守护进程开始使用ansible

Raj*_* .E 2 ssh ansible docker

我正在为启动docker damon,docker容器,docker exec的 ansible脚本工作,在docker 容器中 启动docker容器后,我需要启动一些服务。

我已经安装了docker engine,在远程机器中配置并使用了一些Docker容器。我曾经用特定的路径启动docker守护进程,因为我需要使用in路径存储我的卷和容器。

 $docker daemon -g /test/docker
Run Code Online (Sandbox Code Playgroud)

我的问题是启动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
Run Code Online (Sandbox Code Playgroud)

我按照异步开始该过程,但对我不起作用,

建议我在启动docker daemon之后,如何运行下一个进程。

gbo*_*olo 5

为了启动docker守护程序,您应该使用ansible 服务模块

- name: Ensure docker deamon is running
  service:
    name: docker
    state: started
  become: true
Run Code Online (Sandbox Code Playgroud)

官方文档中所述,任何docker daemon定制都应放在/etc/docker/daemon.json中。在您的情况下,文件将如下所示:

{
   "graph": "/test/docker"
}
Run Code Online (Sandbox Code Playgroud)

为了与容器交互,请使用ansible docker_container模块

- name: Ensure My docker container is running
  docker_container:
    name: testing
    image: busybox
    state: started
  become: true
Run Code Online (Sandbox Code Playgroud)

尽量避免使用shell模块做任何事情,因为这可能会引起麻烦。