从docker到istio之二:使用compose部署应用

Posted by hiho on November 12, 2020

这是第二篇,使用compose部署应用,同样演示都在docker2istio目录。

Compose

Compose是一个用于定义和运行多容器Docker应用程序的工具,采用python编写。

部署应用

编写应用部署文件

compose部署应用,采用编写docker-compose.yml

version: '3'
services:
  docker2istio-redis:
    image: redis:4-alpine3.8
    restart: always

  docker2istio-app:
    depends_on:
      - docker2istio-redis
    build: ./laravelapp
    image: laravelapp:0.0.2
    links:
      - docker2istio-redis

  docker2istio-nginx:
    image: nginx:1.15.8-alpine
    depends_on:
      - docker2istio-app
    volumes:
      - ./nginx:/etc/nginx/conf.d
    restart: always
    ports:
      - "80:80"
    environment:
      - NGINX_PORT=80
    links:
      - docker2istio-app

这里描述了下面几件事情:

  • 依次启动redisflaskappnginx 三个服务。服务顺序由depends_on 决定。
  • 使用build命令,自动编译 laravelapp:0.0.2
  • 使用links命令,描述服务间依赖。
  • 使用ports导出端口,使用volumes挂载数据卷。

这一过程,把第一篇中启动容器的过程,语义化,流程更清晰。

启动应用

启动应用,使用docker-compose up 命令:

1.png

启动日志中,展示了创建网络,编译镜像,启动容器这几个过程

访问应用

使用 docker-compose ps 检查服务状况:

              Name                             Command               State         Ports       
-----------------------------------------------------------------------------------------------
docker2istio_docker2istio-app_1     docker-php-entrypoint php  ...   Up      8080/tcp          
docker2istio_docker2istio-nginx_1   nginx -g daemon off;             Up      0.0.0.0:80->80/tcp
docker2istio_docker2istio-redis_1   docker-entrypoint.sh redis ...   Up      6379/tcp 

当然,compose也是使用docker,也可以 docker ps

CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                NAMES
6620a1272ed8        nginx:1.15.8-alpine   "nginx -g 'daemon of…"   8 minutes ago       Up 8 minutes        0.0.0.0:80->80/tcp   docker2istio_docker2istio-nginx_1
50fbc4575208        laravelapp:0.0.2      "docker-php-entrypoi…"   8 minutes ago       Up 8 minutes        8080/tcp             docker2istio_docker2istio-app_1
fbeecd51575d        redis:4-alpine3.8     "docker-entrypoint.s…"   8 minutes ago       Up 8 minutes        6379/tcp             docker2istio_docker2istio-redis_1

对比可见 docker-compose ps ,更偏应用层。

然后访问服务:

Hello World by 172.20.0.4 from 127.0.0.1 ! 该页面已被访问 2 次。

应用扩容

使用 docker-compose up --scale docker2istio-app=2 对 docker2istio-app进行扩容。

—End—

迭代

  • 2020年11月12日 16:30 初稿

参考