可能的Docker容器-重新启动=始终在docker_service中?

ymzxtsji  于 2023-03-01  发布在  Docker
关注(0)|答案(2)|浏览(130)

我有一个RPi,当RPi使用docker_service重新启动时,Docker不会重新启动。
在docker_service中,似乎与记录的方式相同:

docker_service:
  project_name: myprj
  definition: 
    version: 2
    services:
      mariadb:
        image: ...
      nrc101:
        image: ...
        depends_on: 
          - mariadb
  restarted: yes
  state: present

但是,当RPi重新启动时,例如电源故障时,它不会重新启动。
这里-因为ansible docker_container有一个restart_policy: always声明,现在,我想使用docker_service而不是docker_container,因为我有相互依赖的容器,不知道如何在docker_service中做到这一点,因为文档的方式不起作用。
有人知道如何使用docker_service重新启动container吗?

mrfwxfqh

mrfwxfqh1#

    • 你的代码现在做什么**
  • 它在definition中定义了一个内联停靠组合。
  • 它根据restarted参数重新启动所有容器。
    • 您指定要执行的操作**
  • 您要指定重新启动策略。

您在docker-compose文件中指定了重新启动策略,因此转到the Docker Compose documentation并搜索"restart policy"。
然后定义:

restart: always

用于每个容器。

ifmq2ha2

ifmq2ha22#

我认为您正在docker_container任务中寻找类似以下内容的内容:

- name: Create Prometheus docker container
  docker_container:
    name: Prometheus
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - /etc/docker/prometheus:/etc/prometheus
    state: started
    restart: yes
    restart_policy: "always"

最后一行restart_policy: "always"是您所需要的。此处提供更多选项和信息:https://docs.ansible.com/ansible/latest/collections/community/docker/docker_container_module.html#parameter-restart_policy

相关问题