1.06 docker Compose多容器部署
1.docker部署wordpress
- 将dockerHub上的wordpress和mysql拉取到本地
- 创建mysql的container,端口不需要映射,数据库是wordpress去访问
- 创建wordpress的container,映射到本地的8080端口
- 访问IP:8080,可以看到wordpress的欢迎页
- 选中文,继续
- 填写信息,点击安装
- 点登录,通过两个image成功部署了wordpress
2.docker compose介绍
- 多容器的APP很难部署和管理
- docker compose就类似于批处理
- docker compose是一个命令行工具,可以通过一个yml格式的文件定义多容器的docker应用
- 通过一条命令就可以根据yml文件的定义去创建或者管理多个容器
- docer compose版本2只能用于单机,版本3可以用于多机
- docker-compose.yml是默认的名字,文件中有如下三种重要的概念
- Services:一个service代表一个container,这个container可以由dokerHub的image创建,也可以由本地的Dockerfile build出来的image创建
- Services的启动类似于docker run,可以给其指定network和volume,所以可以给service指定network和volume的引用
3.docker compose安装和使用
- 下载docker compose
- 赋权限
- 查看版本,显示就安装好了
- 在某个目录创建docker-compose.yml文件,这里在/home下创建,写入内容
version: '3'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_PASSWORD: admin
networks:
- my-bridge
mysql:
image: mysql:5.5
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: wordpress
volumes:
- mysql-data:/var/lib/mysql
networks:
- my-bridge
volumes:
mysql-data:
networks:
my-bridge:
driver: bridge
- 启动docker-compose
- 另一个窗口查看容器网络状态
- 在另一个会话,查看当前docker进程
- 查看docker-compose
- 停止docker-compose
- 启动docker-compose
- 停止并删除docker-compose
- 后台运行docker-compose
- 交互运行docker-compose的方法
- 找到之前写的flask-redis,进入目录
- 创建docker-compose.yml,写入如下内容
version: "3"
services:
redis:
image: redis
web:
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:5000
environment:
REDIS_HOST: redis
- 启动docker-compose
- 启动后,浏览器访问IP:8080,可以看到如下
- 停止并删除
4.容器扩展和负载均衡 - 启动并后台运行compose
- 查看进程,此时有一个redis和一个web
- 扩展web的应用部署
- 但是运行完会报错,8080端口占用
- 停止并删除compose
- 删除docker-compose.yml中的如下两行
- 启动并创建3个web服务
- 运行中也可以扩展,实现了高效快速扩展
- 查看进程
- 假如有多个web,同时访问一个redis,还需要一个负载均衡器
- 修改之前的app.py如下
- 修改之前的Dockerfile如下
- 修改之前的docker-compose.yml如下,最后加一段haproxy
- 停止并删除compose
- 运行compose
- 尝试访问
- 动态将web扩展成3个
- 查看进程
- 尝试访问
- 当访问高峰过去,还可以减少集群节点
- 查看进程
- 停止并删除compose
5.复杂应用部署
- 有两个对外的App,votingApp是对外投票用的,resultsApp会实时显示候选人得票情况
- votingApp访问量大,先把投票结果写到redis缓存,java去取结果写到数据库
- resultsApp从数据库获取最新的投票结果
- 进入目录
- 启动docker-compose
- 浏览器访问5000和5001端口
- 关闭并删除
-
学院Go语言视频主页
https://edu.****.net/lecturer/1928
[清华团队带你实战区块链开发]
(https://ke.qq.com/course/344443?tuin=3d17195d)
扫码获取海量视频及源码 QQ群:
721929980