docker和docker-compose有什么不同?
docker
和docker-compose
似乎与相同的docker文件相互作用,这两个工具之间有什么区别?
在Docker引擎上pipe理单个容器时使用docker
cli。 这是访问docker守护进程api的客户端命令行。
docker-compose
cli可用于pipe理多容器应用程序。 它还将docker-compose.yml
许多选项移到docker-compose.yml
文件中,以便于重复使用。 它作为一个前端“脚本”在docker使用相同的dockerAPI的顶部,所以你可以做所有的docker-compose
docker
命令和大量的shell脚本。 有关更多详细信息,请参阅docker-compose上的此文档 。
更新群模式
由于这个答案已经发布,docker已经添加了第二次使用docker-compose.yml文件。 从版本3的yml格式和docker 1.13开始,你可以使用docker-compose的yml,也可以在docker的swarm模式下定义一个堆栈。 要做后者,你需要使用docker stack deploy -c docker-compose.yml $stack_name
而不是docker stack deploy -c docker-compose.yml $stack_name
docker-compose up
,然后用docker
命令而不是docker stack deploy -c docker-compose.yml $stack_name
docker-compose up
命令来pipe理堆栈。 这两种用途之间的映射是一对一的:
- 撰写项目 – > Swarm Stack:用于特定目的的一组服务
- 撰写服务 – >群集服务:一个图像,它的configuration,可能放大。
- 撰写容器 – >群集任务:服务中的单个容器
有关swarm模式的更多细节,请参阅docker的swarm模式文档 。