docker compose中的服务概念与容器概念之间的关系是什么?

docker compose中的服务概念与容器概念之间的关系是什么?,docker,docker-compose,Docker,Docker Compose,在docker compose中,我们可以定义服务属性图像,也可以从docker文件构建图像。 似乎服务与容器相同,后者也是基于图像的运行实例 那么服务和容器之间有什么区别呢?您的假设似乎是正确的。它们遵循云本地应用程序的撰写规范。根据报告: 服务由Docker映像和一组运行时参数定义。服务中的所有容器都是使用这些参数相同地创建的 在功能上,它们应该是相同的。docker compose文件是定义容器应如何运行的更简单的方法(与向dockerCLI提供长命令相比)。服务是docker compo

在docker compose中,我们可以定义
服务
属性
图像
,也可以
从docker文件构建图像。
似乎
服务
容器
相同,后者也是基于
图像的运行实例


那么
服务
容器
之间有什么区别呢?

您的假设似乎是正确的。它们遵循云本地应用程序的撰写规范。根据报告:

服务由Docker映像和一组运行时参数定义。服务中的所有容器都是使用这些参数相同地创建的

在功能上,它们应该是相同的。docker compose文件是定义容器应如何运行的更简单的方法(与向
docker
CLI提供长命令相比)。服务是docker compose使用的一个概念,用于抽象一些可以独立于其他组件进行缩放和替换的计算资源


所有的信用证都是在单据上到期的。这是我读过的关于它们的含义的最好描述。

从概念上讲,服务和容器是完全不同的东西

  • 容器是围绕一个独立过程的标准化包装
  • 服务是通过正式接口提供对功能(运行软件)访问的机制
此外,在docker compose中,服务可以有0..n个实例,其中n默认为1,可以被覆盖。通过HTTP的访问将由compose进行负载平衡,服务将注册到一个注册表中,该注册表允许其他服务按访问名称(dns)查找它们


还有其他区别,例如服务在共享网络上的默认位置。另外,另一个区别是compose是声明式的,其中“docker run”是必需的。业界强烈倾向于前者。

IMHO,与Swarm相比,Compose用于单个主机,Swarm用于在集群中部署我们的应用程序。在一台主机中是否可以有多个服务实例?