通过自动启动在单个节点上运行docker stack和swarm在生产中?

时间:2018-09-04 09:07:17

标签: docker docker-compose docker-swarm docker-stack

我如何在单个docker swarm节点上(从docker-compose.yml运行docker堆栈),该节点在系统重启时自动启动?

我正在使用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]

哪个恕我直言应该强制服务始终运行/重新启动。但是,当重新启动服务器/ 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重启)时将所有配置的服务扩展到其配置值的正确方法是什么?

0 个答案:

没有答案