我可以通过命令创建docker容器
docker run <<image_name>>
我可以通过命令创建服务
docker service create <<image_name>>
这两种行为之间有什么区别?
何时需要通过容器创建服务?
答案 0 :(得分:2)
docker service
命令替换了docker run
。 docker run
是为单主机解决方案构建的。它的整个想法是将重点放在与之通信的系统上的本地容器上。而在集群中,各个容器是无关紧要的。我们仅使用群服务来管理集群中的多个容器。 Swarm将为我们精心安排服务的容器。
docker service create
主要用于docker swarm mode中。 docker run
没有放大/缩小的概念。使用docker service create
,您可以使用--replicas
命令指定要创建的副本数。这将在许多不同的节点中创建和管理容器的多个副本。使用docker service create
和docker service ...
更多注意事项:docker服务适用于容器编排系统(群发)。它内置了故障恢复功能。即。它在失败时重新创建一个容器。 docker run
将永远不会重新创建容器,如果它失败了。使用docker service
命令时,我们不是直接要求执行“创建单个容器”之类的操作,而是要告诉业务流程系统“将该作业放入您的队列中,以及何时可以执行该作业。蜂拥而至的行动”。这意味着它具有回滚功能,故障缓解和内置的大量智能功能。
在群体模式下,您需要考虑使用docker service create
;在非群体模式下,则需要考虑使用docker run
。您可以查找Docker群以了解Docker服务。
答案 1 :(得分:1)
没有真正的区别。在官方documentation中,您可以阅读“服务实际上只是生产中的容器”。
服务可以在“ docker-compose.yml”中声明,并可以从中启动。一旦启动,它们将作为容器运行。
这只是命名堆栈中各个部分的常用方法。