Docker容器技术:Docker Compose概念

199 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情

1. dk compose是什么

如果我们使用之前的方法,来部署一个具有前后端与数据库的容器的话,会发现每一个服务都需要单独编写Dockerfile并进行管理,如果一个系统涉及更多模块的话,每个都需要安装,运行,管理,删除,很繁琐。

我们希望这类application可不可以变成一个group,统一对内部使用到的容器进行管理和启动删除

于是Docker Compose就出现了~~

为什么没有批处理工具呢?其实dk compose就扮演了这个角色:

通过一个文件来进行定义,通过一个命令来统一处理

最关键的就是这个yml文件。

这里推荐使用最新的version3版本(version1不要用,淘汰了):

version2和version3最大区别在于单机和多机,version3支持把一个App包含的多个容器分别部署到不同的docker host上面。

注意docker-compose只是一个本机开发调试方便的工具,不建议直接应用在生产环境下。

2. yml文件

有一个默认名字:docker-compose.yml

Services

image两种来源:本地Dockerfile-build之后,以及hub拉下来。

例如:

image.png

这里有一个service为db,image是从docker-hub拉取的。

volumes定义了存储

networks定义了网络。

最后定义完成就相当于执行了上面的命令。

在看一个;

这个service的image是本地build出来的,不是拉取的。

links表示这个容器会和哪些容器做link(这个其实不需要,后面会通过brdige连接)

Networks

  1. 例子

这里我们还是基于wordpress来看一个例子

version:3 // 代表版本是version3

这里定义了两个services,一个image是wordpress,并配置了端口和环境变量,同时指定了network名称

另一个是mysql,定义了环境变量,volumes和networks也对应索引。

这就是一个比较完整的yml