这是第二篇,使用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
这里描述了下面几件事情:
- 依次启动
redis
、flaskapp
、nginx
三个服务。服务顺序由depends_on
决定。 - 使用
build
命令,自动编译laravelapp:0.0.2
。 - 使用
links
命令,描述服务间依赖。 - 使用
ports
导出端口,使用volumes
挂载数据卷。
这一过程,把第一篇中启动容器的过程,语义化,流程更清晰。
启动应用
启动应用,使用docker-compose up
命令:
启动日志中,展示了创建网络,编译镜像,启动容器这几个过程
访问应用
使用 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 初稿