站长资讯网
最全最丰富的资讯网站

Docker应用 – 使用Docker Compose编排容器

前言

​上两篇文章都是再玩儿Dockerfile,主要是基于Dockerfile构建各种服务镜像。而本文将介绍及演示docker的自动编排工具——docker compose的概念和使用。

  • 揭开Docker的面纱 – 基础理论梳理和安装流程演示  http://www.info110.com/Linux/2020-04/163003.htm
  • Docker基础命令详解 – 镜像及容器操作  http://www.info110.com/Linux/2020-04/163005.htm
  • 深入理解Docker的硬件资源控制与验证  http://www.info110.com/Linux/2020-04/163006.htm
  • Docker网络模式与配置Docker自定义网络(bridge模式)  http://www.info110.com/Linux/2020-04/163007.htm
  • Docker构建镜像的三种方式(Dockerfile初步)  http://www.info110.com/Linux/2020-04/163008.htm
  • 教你如何搭建Docker私有仓库  http://www.info110.com/Linux/2020-04/163009.htm
  • 深入理解Docker数据管理与端口映射  http://www.info110.com/Linux/2020-04/163010.htm
  • Dockerfile与Dockerfile实战  http://www.info110.com/Linux/2020-04/163011.htm
  • Dockerfile与Dockerfile实战 http://www.info110.com/Linux/2020-04/163011.htm

什么是docker compose?

​先前我们在使用Dockerfile构建镜像时,在编写好Dockerfile文件以及其他必要文件后,需要使用docker build 、docker run 等命令操作{创建,启动,停止等}容器。然而,在微服务架构体系中,一个应用系统一般包含若干个服务器,每个微服务通常都会部署多个实例,如果每个服务都要手动启停,那么这样效率太低了,而且维护也非常不方便。

​因此,便有了docker compose,它可以轻松、高效地管理容器,是一个用于定义和运行多容器docker的应用程序工具。

下面结合实际例子来使用以下docker compose工具吧,之后会给出编排文件常用的字段介绍以及docker-compose的相关命令介绍。

基于docker compose工具构建nginx容器服务

首先,我们需要创建一个目录,其中需要包含一个构建Dockerfile的nginx目录,首页页面测试目录以及docker-compose.yml文件

所以,一方面我们需要docker安装环境,也需要安装docker compose工具;

再者,依旧是需要编写nginx服务的Dockerfile和运行脚本,结合指定的页面目录来进行测试验证;

接下来,编写yml格式的docker-compose.yml文件,并且执行对应的命令。

下面是这个案例的目录结构

[root@localhost opt]# tree compose_nginx/  compose_nginx/  ├── docker-compose.yml  ├── nginx  │?? ├── Dockerfile  │?? └── nginx.sh  └── wwwroot      └── index.html    2 directories, 4 files  

Dockerfile以及对应的文件都无需更改,我们需要做的就是编写一个首页页面

[root@localhost opt]# cat compose_nginx/wwwroot/index.html   <h1>this is test web</h1>  

接着编写docke-compose.yml文件

[root@localhost opt]# cat compose_nginx/docker-compose.yml   version: '3'  services:    nginx:      hostname: nginx      build:        context: ./nginx        dockerfile: Dockerfile      ports:        - 1216:80        - 1217:443      networks:        - cluster      volumes:        - ./wwwroot:/usr/local/nginx/html  networks:    cluster:  

docker-compose.yml文件解释

version:声明版本,目前是3  service:具体的服务  nginx:服务名称  hostname:容器主机名称  build:创建  context:提供资源和素材提供的目录,用来创建容器的路径  dockerfile:Dockerfile文件  ports:提供的端口,相当于执行docker run -p的设置  networks:网络名称,如果是群集那么这个名称设置需要一致(同一个网络环境)  volumes:数据卷,本次案例是提供首页页面  networks:services的子选项针对外公开的网络名称

启动运行

[root@localhost opt]# docker-compose -f compose_nginx/docker-compose.yml up -d  #-f——指定文件   -d——后台 up——启动  ....//第一次执行过程比较久,显示信息多,这里就省略了。

运行的结果和一些解释如下图

Docker应用 - 使用Docker Compose编排容器

如果重复执行上述命令则会出现以下结果,因此这个WARNING是一个比较友好的提示哦!

[root@localhost opt]# docker-compose -f compose_nginx/docker-compose.yml up -d  compose_nginx_nginx_1 is up-to-date  

查看镜像和容器

[root@localhost opt]# docker images  REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE  compose_nginx_nginx   latest              67f9a64cc32d        5 minutes ago       587MB  CentOS                7                   5e35e350aded        5 months ago        203MB  [root@localhost opt]# docker ps -a  CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                         NAMES  8f3d48d7c765        compose_nginx_nginx   "/nginx.sh"         5 minutes ago       Up 5 minutes        0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp   compose_nginx_nginx_1  

测试验证:

Docker应用 - 使用Docker Compose编排容器

Docker compose配置常用字段(.yml文件中)

Docker应用 - 使用Docker Compose编排容器

Docker compose常用命令(bash终端)

Docker应用 - 使用Docker Compose编排容器

赞(0)
分享到: 更多 (0)