docker服务和docker容器的区别

sec*_*tar 4 docker docker-swarm

我可以通过命令创建一个docker容器

docker run <<image_name>>
Run Code Online (Sandbox Code Playgroud)

我可以通过命令创建服务

docker service create <<image_name>>
Run Code Online (Sandbox Code Playgroud)

这两者在行为上有什么区别?

我什么时候需要通过容器创建服务?

Riy*_*eed 5

docker servicedocker swarm 中的命令替换了docker run. docker run专为单主机解决方案而构建。它的整个想法是专注于它与之对话的系统上的本地容器。而在集群中,各个容器是无关紧要的。我们只是使用 swarm 服务来管理集群中的多个容器。Swarm 将为我们编排服务的容器。

docker service create主要用于docker swarm 模式docker run没有放大/缩小的概念。随着docker service create您可以指定使用创建的副本数量--replicas的命令。这将在许多不同的节点中创建和管理容器的多个副本。有几个这样的选项可以使用docker service create下面的命令和其他命令来管理多个容器docker service ...

还要注意一点:docker 服务用于容器编排系统(swarm)。它内置了故障恢复设施。IE。它在失败时重新创建一个容器。docker run如果失败,将永远不会重新创建容器。当使用docker service命令时,我们不是直接要求执行“创建单个容器”之类的操作,而是对编排系统说“将此作业放入您的队列中,当您可以使用它时,在群上执行该操作”。这意味着它具有回滚设施、故障缓解和大量内置智能。

您需要考虑docker service create在群模式下和docker run非群模式时使用。您可以查找 docker swarms 以了解 docker 服务。