docker作曲是一个自我疗愈的管弦乐队演奏家吗



kubernetes中,如果pod由于某种原因发生故障,准入控制器将重新启动它。

我们称之为"自我疗愈"。

我从未与docker compose合作过,但我想知道:它是一样的吗?

使用docker-compose或现在使用docker compose(带空格(部署时,您将部署到单个节点。您可以将服务定义为使用处理崩溃应用程序的重新启动策略自动重新启动。然而,在一些情况下,网络或卷等外部因素不处于良好状态,这导致docker认为该定义无效,此时它停止尝试重新启动服务。

还有Swarm Mode,它是一个类似Kubernetes的协调器,它可以使用docker-compose.yml来定义目标状态,它将继续重新启动服务以从中断中恢复,并在集群中的一个节点出现故障时将其迁移到另一个节点。

  • 单独的docker compose并不是一个真正的容器编排器
  • 它只是一个允许您将服务及其依赖项作为一个单元运行的客户端。docker compose确实有一个重新启动策略,可以在容器崩溃或其他情况下重新启动容器
  • 如果运行容器的节点出现故障,docker compose将无法重新启动容器,您将面临服务中断
  • Docker Swarm和Kubernetes是服务器,而不仅仅是客户端,因此它们是更全面的协调器

要在docker环境中实现自我修复,可以像在Kubernetes中一样创建服务。但只有在群模式下使用Docker才能创建服务。

要启用swarm,请使用:docker swarm init
然后继续创建一个服务,如:
docker service create [service-name] [--options [values]...]

如果你想利用docker-compose来创建一个服务,下面是你如何为Postgres数据库做到这一点的:

version: "3.1"
services:
psql:
image: postgres
secrets:
- psql_user
- psql_password
environment:
POSTGRES_USER_FILE: /run/secrets/psql_user
POSTGRES_PSWD_FILE: /run/secrets/psql_pass
secrets:
psql_user:
file: ./psql_user.txt
psql_password:
file: ./psql_pass.txt

最后,继续在docker-compose.yaml所在的同一目录中使用docker-compose up,它将启动并运行您的psql服务。

更详细地说,docker-compose本身并不是一个协调器。docker-compose是一种使用单个文件和单个命令同时启动或停止多个容器的机制。

此外,必须指出的是,docker compose是一种测试实用程序,不应用于生产。对于生产用途,请查看堆栈。

最新更新