什么是docker和docker-compose之间的区别?

15 浏览
0 Comments

什么是docker和docker-compose之间的区别?

dockerdocker-compose似乎都与同一个docker文件进行交互,这两个工具之间有什么区别?

admin 更改状态以发布 2023年5月22日
0
0 Comments

docker 管理单个容器

docker-compose 管理多个容器的应用程序

使用docker-compose需要三个步骤:

  1. 使用Dockerfile定义应用环境
  2. docker-compose.yml文件中定义应用服务
  3. 运行docker-compose up启动和运行应用程序

docker-compose up

以下是从docker文档中获取的docker-compose.yml示例:

services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

0
0 Comments

docker cli用于在docker引擎上管理单个容器。它是访问docker守护程序api的客户端命令行。

docker-compose cli可用于管理多容器应用程序。它还将您在docker run cli中输入的许多选项移动到docker-compose.yml文件中,以便更轻松地重用。它作为同一docker api的前端“脚本”使用,这个api也被docker使用,因此您可以使用docker命令和大量的shell脚本来执行docker-compose所能做的任何事情。有关更多详细信息,请参见docker-compose的此文档


Swarm模式更新

自发布此答案以来,docker已添加了docker-compose.yml文件的第二个用途。从版本3 yml格式和docker 1.13开始,您可以使用yml与docker-compose一起使用,还可以在docker的Swarm模式中定义堆栈。要执行后者,您需要使用docker stack deploy -c docker-compose.yml $stack_name而不是docker-compose up,然后使用docker命令而不是docker-compose命令来管理该堆栈。两个用途之间的映射是一一对应的:

  • Compose项目-> Swarm堆栈:特定用途的服务组
  • Compose服务-> Swarm服务:一个镜像及其配置,可能会扩展
  • Compose容器-> Swarm任务:服务中的单个容器

有关Swarm模式的更多详细信息,请参见docker Swarm模式文档

0