Docker Compose定义
Docker Compose是Docker官方提供的用于定义和管理运行多个Docker容器的开源容器编排工具。
Docker Compose作用
Docker Compose 通过一个配置文件来管理多个Docker容器,然后使用docker-compose脚本来启动 停止和重启应用,非常适合组合使用多个容器进行开发的场景。
有了 Docker Compose 你可以把所有繁复的 Docker 操作全都一条命令,自动化的完成。
为什么需要Docker Compose?
Docker帮助我们解决服务的打包安装的问题,随着而来的问题就是服务过多的带来如下问题:
- 多次使用DockerHub拉取Docker镜像;
- 需要创建多个容器多次编写启动命令;
- 容器互相依赖的,如何进行管理和编排;
当我们服务数量增多的时候,上面三个问题就会更加的被放大,Docker有没有什么好的方法,可以让我们通过一个配置就搞定容器编排和运行呢?这个时候Docker Compose就站出来了。
Docker Compose安装
对于Windows安装Docker以后,就已经安装好Docker Compose,不需要手动安装,这里的安装方式是基于Linux的Cnetos的。
主要分为3个步骤:
1.下载 Docker Compose 稳定版本
sudo curl -L "<https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.对二进制文件应用可执行权限
sudo chmod x /usr/local/bin/docker-compose
3.检查是否安装成功
docker-compose --version
Docker Compose命令
1.查看帮助
docker-compose -h
2.创建并运行所有容器
docker-compose up
3.查看容器输出日志
docker-compose logs
4.只构建不运行
docker-compose build
5.列出项目中目前所有容器
docker-compose ps -f docker
6.停止compose服务
docker-compose stop
7.重启compose服务
docker-compose restart
8.检查配置
dokcer-compose config
9.拉取依赖镜像
docker-compose pull
10.删除compose服务
docker-compose rm
11.启动容器
docker-compose start 容器名字
比如,启动Nginx容器:
docker-compose start nginx
Docker Compose示例
1.新建docker-compose.yml文件
version: '1' services: web1: image: nginx ports: - "8081:80" container_name: "test1" networks: - dev web2: image: nginx ports: - "8082:80" container_name: "test2" networks: - dev - pro networks: dev: driver: bridge pro: driver: bridge
2.创建webapp目录
将docker-compose.yaml文件拷贝到webapp目录下。
3.启动应用
使用docker-compose启动应用:
docker-compose up -d
访问测试:
http://127.0.0.1:8081http://127.0.0.1:8082
Docker Compose原理
Docker Compose主要调用了Docker服务提供的API来对容器进行管理。
因此,只要所在的操作系统的平台支持Docker API,就可以在其上利用Compose来进行编排管理。
Docker Compose工作流程:
第一步:利用Dockerfile定义运行环境;
第二步:使用docker-compose.yml定义组成应用的各服务;
第三步:运行docker-compose up启动应用。
mikechen睿哥
mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》