前言
实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器。
我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有需要一个配置文件,负责实现对Docker容器集群的快速编排。
docker-compose简介
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。
Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。
Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。
1、安装docker-compose容器集群快速编排
pip install docker-compose
此时如果提示pip未找到命令,说明源更新滞后或者不存在,需要安装下列
安装扩展源:sudo yum -y install epel-release
安装python-pip模块:sudo yum install python-pip
这些安装完后再次pip install docker-compose
2、看docker-compose版本
docker-compose version
3、建 easymock文件夹目录
mkdir /root/easymock
4、进入easymock目录
cd easymock
5、新建文件docker-compose.yml文件
vi docker-compose.yml
按i键,输入如下内容:
version: '3'
services:
mongodb:
image: mongo:3.4
volumes:
# ./data/db 数据库文件存放地址,根据需要修改为本地地址
- './data/db:/data/db'
networks:
- easy-mock
restart: always
redis:
image: redis:4.0.6
command: redis-server --appendonly yes
volumes:
# ./data/redis redis 数据文件存放地址,根据需要修改为本地地址
- './data/redis:/data'
networks:
- easy-mock
restart: always
web:
image: easymock/easymock:1.6.0
command: /bin/bash -c "npm start"
ports:
- 7300:7300
volumes:
# 日志地址,根据需要修改为本地地址
- './logs:/home/easy-mock/easy-mock/logs'
# 配置地址,请使用本地配置地址替换
# - './production.json:/home/easy-mock/easy-mock/config/production.json'
networks:
- easy-mock
restart: always
networks:
easy-mock:
然后按esc键,输入:wq,点击回车键enter,保存成功
6、查看内容
cat docker-comose.yml
7、启动docker-compose
docker-compose up
若看到上面的报错,按Ctrl+c,输入chmod 777 /root/easymock/logs/
然后重新输入docker-compose up
8、在浏览器中输入http://ip:7300 即可访问
9、停止运行,将docker-compose挂后台运行
docker-compose down 停止运行
docker-compose up -d 挂后台运行
到目前为止,easymock部署成功