1

如何docker-compose.yml在系统重新启动时自动启动的单个 docker swarm 节点上运行 docker 堆栈(来自 a )?

我正在使用 docker-compose 组合多个服务的应用程序,然后使用docker stack deploy它在我的服务器上将其部署到单个实例 docker swarm 实例。

在我的docker-compose.yml我已经用重启策略定义了我的服务:

deploy:
  restart_policy:
    condition: any
    delay: 5s
    max_attempts: 3
    window: 120s
  placement:
    constraints: [node.role == manager]

恕我直言,应该强制服务始终运行/重新启动。但是当 server/docker 守护进程重新启动时,服务并没有启动。有一些简单的方法可以做到这一点吗?

docker service list会显示:

ID                  NAME                                 MODE                REPLICAS            IMAGE                                                                              PORTS
s9gg88ul584t        finalyzer-prod_backend               replicated          0/1                 registry.gitlab.com/hpoul/finalyzer/finalyzer-backend:latest                       *:8081->8080/tcp
vb9iwg7zcwxd        finalyzer-prod_mongoadmin            replicated          0/1                 mrvautin/adminmongo:latest                                                         *:8082->1234/tcp
qtasgtqi7m0l        finalyzer-prod_mongodb               replicated          0/1                 mongo@sha256:232dfea36769772372e1784c2248bba53c6bdf0893d82375a3b66c09962b5af9      
wdnrtlbe8jpw        finalyzer-prod_pgdb                  replicated          0/1                 postgres@sha256:73d065c344b419ce97bba953c7887c7deead75e0998053518938231cd7beb22c   

所以它认识到它应该运行 1 个节点,但它没有扩大它。强制 docker swarm、service 或 docker stack 在服务器重启(或 docker daemon restart)时将所有配置的服务扩展到其配置值的正确方法是什么?

4

0 回答 0