Docker compose容器编排

Strong 2021年05月18日 373次浏览

Docker compose容器编排

1、Docker compose简介

docker-compose是docker的编排工具,用于定义和运行一个项目,该项目包含多个docker容器,在如今的微服务时代,一个项目会存在多个服务,使用docker一个个部署操作的话就会很麻烦,如果使用docker编排工具一键部署,统一管理就会便捷很多,同时也提高了开发,运维效率。

1.1 什么是容器编排?

容器编排即是在docker客户端与docker服务器之间加入一个容器编排,通过容器编排的操作一次执行便可将整个微服务系统全部一键部署;简单来说,某些项目所需要的容器远不止一个,按照传统的做法就是一个个部署容器,有了容器编排之后可以一键部署所有容器。

compose.png

1.2 Docker compose如何实现容器编排?

docker compose容器编排和Dockerfile镜像构建一样通过编写文本文件,在文本文件中写入指令来完成容器的编排工作;docker compose编排文件默认名为:docker-compose.yml;一个docker-compose.yml文件就是一个项目。

docker compose容器编排的三步过程:

  • 定义应用程序环境(镜像),已有镜像,Dockerfile构建镜像。
  • 定义应用程序容器,docker-compose.yml以便它们可以在隔离环境中一起运行。
  • 运行启动整个项目程序。

2、docker-compose.yml配置讲解

docker-compose.yml文件格式及编写注意事项:

  • 不支持制表符tab键缩进,需要使用空格缩进
  • 通常开头缩进两个空格
  • 字符后缩进1个空格,如冒号、逗号、横杆
  • 用#号注释
  • 如果包含特殊字符用单引号引起来
  • 布尔值须用引号引起来

docker-compose.yml文件配置详解:

version:"3.7"		 #指定compose版本,最好是3.0以上版本
services: 		 #配置服务(容器)

  httpd:		 #配置服务标识(唯一编号)
    container_name: xxx	 #容器名称
    image: httpd	 #配置容器镜像
    build:		 #build和image二选一
     context: .		 #上下文路径
     dockerfile: Dockerfile
    depends_on:          #容器启动顺序,该容器依赖某个容器
     - xxx
    expose:		 #容器开放端口
     - 80
    ports: 		 #配置容器映射端口号[数组]
     - 80:80
    volumes:		 #配置挂载卷
     - db_data:/var/www/html
    networks: 		 #配置容器网络[数组]
     - httpd_net         #网络名称
    privileged:"true"
    command: xxxx 	 #覆盖容器启动后默认执行的命令
    entrypoint:xxxx	 #覆盖容器启动后默认执行的命令

networks: 		 #为网络指定配置
  httpd_net: 	 	 #配置网络名称
   driver: bridge	 #网络类型

volumes: 		 #为卷指定配置
  db_data:
   driver: local

3、docker-compose工具安装及使用

3.1 docker-compose工具安装

docker-compose工具最新发行的版本地址:
https://github.com/docker/compose/releases

下载docker-compose工具1.29.2版本:
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 -o /bin/docker-compose 

赋予执行权限:
chmod +x /bin/docker-compose

查看版本:
[root@localhost ~]# docker-compose version
docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

3.2 docker-compose工具使用

docker-compose up	//部署Compose应用,默认读取名为docker-compose.yml文件
-d			//后台运行

docker-compose build .	//在运行项目前先构建项目所需镜像

docker-compose ps	//列出本地docker-compose.yml文件里定义的正在运行的所有服务

docker-compose stop	//停止所有服务,如果服务没有停止,可以使用docker-compose kill强制杀死服务

docker-compose start	//开启所有服务

docker-compose rm	//删除所有服务