Docker Service和Docker Container有什么区别?


Answers:


37

简而言之: Docker服务通常在您使用Docker swarm配置主节点时使用,以便docker容器将在分布式环境中运行,并且可以轻松地对其进行管理。

Docker run: docker run命令首先在指定映像上创建可写容器层,然后使用指定命令启动它。

也就是说,docker run等效于API / containers / create然后/ containers /(id)/ start

来源:https : //docs.docker.com/engine/reference/commandline/run/#parent-command

Docker服务: 在一些更大的应用程序上下文中,Docker服务将成为微服务的映像。服务示例可能包括HTTP服务器,数据库或希望在分布式环境中运行的任何其他类型的可执行程序。

创建服务时,可以指定要使用的容器映像以及在运行中的容器内执行的命令。您还定义服务的选项,包括:

  • 群将在群外提供服务的端口
  • 用于服务连接到群中其他服务的覆盖网络
  • CPU和内存限制与保留
  • 滚动更新策略
  • 群中要运行的图像的副本数

来源:https : //docs.docker.com/engine/swarm/how-swarm-mode-works/services/#services-tasks-and-containers


1
因此,在扩展容器时,可以将它们部署到不同的工作程序节点吗?如果是这样,我可以从主服务器分配一个容器给工作节点吗?
库纳尔·谢赫加尔

1
当服务以复制模式运行时,@ KunalSehegal缩放适用。在扩展服务时,可以提供约束,并且将在符合约束的节点上部署服务器。
萨拉伯德(Saurabhcdt)

Docker服务是特定Docker容器的集合吗?
therobyouknow


16
  • docker run用于创建独立容器
  • docker service create用于创建在计算机集群(称为swarm)(称为node)中运行的该服务的实例(称为task)。这些任务是库的容器,但不是独立的容器。从某种意义上说,服务在实例化任务时充当模板。

例如

docker service create --name MY_SERVICE_NAME --replicas 3 IMAGE:TAG

创建基于IMAGE:TAG图像的MY_SERVICE_NAME服务的3个任务。

更多信息可以在这里找到


15

Docker运行将启动一个容器。

使用docker服务,您可以管理一组容器(来自同一图像)。您可以缩放它们(启动多个容器)或更新它们。


通过该“服务,您可以管理一组容器”,如果知道服务名称(人类可读的名称)或服务ID(字母数字)的名称(两者都通过docker service lsdo表示),那么如何获得Docker容器的ID列表属于那个组的人。这样您就可以将ssh放入这些容器中的任何一个了吗?在我看来,这就像人们想做的事情一样,但在我进行搜索时,答案似乎非常难以捉摸……(感谢您阅读,希望您能分享自己的想法)。
therobyouknow

13

Docker服务就像容器的“蓝图”。例如,您可以将一个简单的工作程序定义为一项服务,然后将该服务扩展到20个容器以真正快速地通过队列。之后,您可以将该服务再次缩减为3个容器。同样,通过Swarm,这些容器可以部署到您的swarm的不同节点。

是的,我也建议阅读文档,就像@Tristan建议的那样。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.