玩一玩docker自动编排工具——docker compose的介绍和使用

玩一玩docker自动编排工具——docker compose

前言

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

什么是docker compose?

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

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

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

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

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

因此,一方面咱们须要docker安装环境,也须要安装docker compose工具;centos

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

接下来,编写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的介绍和使用

相关文章
相关标签/搜索