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模式文档 。
- 在CMD指令中从目录访问docker工人容器卷
- 如何在Docker容器中启动tomcat8服务器,以便将进程保持在docker容器的范围内
- 如何在cloud9.io上的工作区(容器)之间分配应用程序工作负载?
- Docker集群重启后失去领导者地位
- 在“Message.proto”中找不到类“Google \ Protobuf \ Internal \ Message”
- 由于NoClassDefFoundError,无法启动embedded容器
- 如何将文件从Docker Ubuntu容器复制到Windows主机
- 构buildDocker容器时出错
- 如何在Amazon中安装Amazon ECS容器代理? (ECS-INIT)