7.docker compose.md 2.9 KB

1.什么是docker compose

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。

Docker-Compose运行目录下的所有文件(docker-compose.yml(由该文件配置环境依赖),extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。

Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。

Compose 中有两个重要的概念: 服务 (service) :一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 项目 (project) :由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

2.docker compose基本命令

  1. docker-compose -h # 查看帮助
  2. docker-compose up # 创建并运行所有容器
  3. docker-compose up -d # 创建并后台运行所有容器
  4. docker-compose -f docker-compose.yml up -d # 指定模板
  5. docker-compose down # 停止并删除容器、网络、卷、镜像。
  6. docker-compose logs # 查看容器输出日志
  7. docker-compose pull # 拉取依赖镜像
  8. dokcer-compose config # 检查配置
  9. dokcer-compose config -q # 检查配置,有问题才有输出
  10. docker-compose restart # 重启服务
  11. docker-compose start # 启动服务
  12. docker-compose stop # 停止服务
  13. docker-compose ps 列出项目中所有的容器
  14. docker-compose stop 停止docker-compose
  15. docker-compose logs 查看容器中日志信息
  16. docker-compose pull 拉取服务依赖的镜像

3.基本语法

  • Image 镜像名称;
  • Build 根据docker file 打包 成镜像;
  • Context 指定docker file文件位置;
  • Commond 使用command可以覆盖容器启动后默认执行的命令;
  • Container_name 容器名称;
  • depends_on 指定依赖那个服务;
  • Ports 映射的端口号;
  • extra_hosts 会在/etc/hosts文件中添加一些记录;
  • Volumes 持久化目录;
  • volumes_from 从另外一个容器挂在数据卷;
  • Dns 设置dns
  • networks 加入同一个局域网
  • environment 定义的环境变量传给container
  • hostname 宿主机名字

4.基本使用

流程:

  1. 需要定义一个docker-compose.yml文件----工程
  2. 需要在docker-compose文件配置依赖服务
  3. docker-compose up 执行该文件