Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用(称为一个 project,即项目)。Compose 定位是“Define and run multi-container applications with Docker”,其前身是 Fig,兼容 Fig 的模板文件。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。
至于开源微服务框架pig,相信从事SpringCloud微服务开发和学习的,应该没有人不知道大名鼎鼎的pig了吧,本人也是从去年接触的pig1.x版本,并且之后有幸基于pig1.x版本进行开发大型平台类项目,并且目前一直在迭代升级中。知道pig的应该也知道pigx吧,pigx是非开源的,需要购买,并且仅仅只能用于学习和毕设等。而在今年初,pig发布了2.0版本,部署学习过pigx的应该能感受到,pig2.X版本可以说是pigx的一个简化版。今天,日月就在这里教大家使用Docker Compose部署pig2.X.
下面是pig在码云上的地址。
https://gitee.com/log4j/pig
环境准备:
1、安装有docker的centos7.4以上版本的服务器一台。
2、xshell
1、更新yum 源
yum update
2、安装docker-compose
安装方式一
sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
what…居然下载不了,最后百度了很多方式比如修改hosts等也还是不行。。。简直无语有木有
OK,本着不能在一棵树上吊死的原则,咱们换一种安装方式
安装方式二
pip安装
1、安装python-pip
yum -y install epel-release
yum -y install python-pip
2、升级pip
python -m pip install -U pip
3、安装docker-compose
pip install docker-compose
安装成功,但是这种安装方式有个奇怪的现象,安装完后,docker-compose的目录居然是在/usr/bin 下面,于是手动复制一份到/usr/local/bin下面。
查看 docker-compose 的版本
先赋权
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version
3、使用git下载pig2.X源码
git clone https://gitee.com/log4j/pig.git
下载完之后进行maven打包,注意本地jdk版本必须是1.8以上版本。
可以使用mvn -v查看maven依赖的jdk版本
4、pig打包
pig 根目录
mvn clean install '-Dmaven.test.skip=true'
5、压缩pig 整个工程上传到docker 宿主机
将pig目录整个压缩成zip包上传至服务器并解压
ps:有条件的话用ftp上传会更快一些。
6、部署
上传后使用unzip 命令解压,然后进入pig目录
unzip pig.zip
执行 docker-compose 命令
构建镜像
通过上图,相信大家也看到了,pig已经有写好的docker-compose.yml文件了,我们看看里面的内容
version: '2'
services:
pig-mysql:
build:
context: ./
dockerfile: ./db/Dockerfile
environment:
MYSQL_ROOT_PASSWORD: root
restart: always
container_name: pig-mysql
image: pig-mysql
ports:
- 3306:3306
pig-redis:
image: redis:5.0
ports:
- 6379:6379
restart: always
container_name: pig-redis
hostname: pig-redis
pig-eureka:
build:
context: ./
dockerfile: ./pig-eureka/Dockerfile
restart: always
ports:
- 8761:8761
container_name: pig-eureka
hostname: pig-eureka
image: pig-eureka
pig-config:
build:
context: ./
dockerfile: ./pig-config/Dockerfile
restart: always
container_name: pig-config
hostname: pig-config
image: pig-config
pig-gateway:
build:
context: ./
dockerfile: ./pig-gateway/Dockerfile
restart: always
ports:
- 9999:9999
container_name: pig-gateway
hostname: pig-gateway
image: pig-gateway
pig-auth:
build:
context: ./
dockerfile: ./pig-auth/Dockerfile
restart: always
container_name: pig-auth
hostname: pig-auth
image: pig-auth
pig-upms:
build:
context: ./
dockerfile: ./pig-upms/pig-upms-biz/Dockerfile
restart: always
container_name: pig-upms
hostname: pig-upms
image: pig-upms
pig-monitor:
build:
context: ./
dockerfile: ./pig-visual/pig-monitor/Dockerfile
restart: always
ports:
- 5001:5001
container_name: pig-monitor
hostname: pig-monitor
image: pig-monitor
pig-codegen:
build:
context: ./
dockerfile: ./pig-visual/pig-codegen/Dockerfile
restart: always
container_name: pig-codegen
hostname: pig-codegen
image: pig-codegen
pig-zipkin:
build:
context: ./
dockerfile: ./pig-visual/pig-zipkin/Dockerfile
restart: always
image: pig-zipkin
container_name: pig-zipkin
ports:
- 5002:5002
现在,我们执行语句进行镜像构建
docker-compose build
很好,没有出错。
启动容器
docker-compose up -d
等待3分钟,查看容器运行状态
防火墙开放访问端口:
8761、9999、3306、6379、5001、5002
访问Centos7 IP:8761 查看eureka状态,确定所有服务全部启动
eureka的访问用户密码就是pig pig
可以看到,核心服务都运行正常。(由于我自己机器配置的原因,我把非核心的几个服务的容器停止了。)
至此,Docker Compose部署pig2.X 后台服务部分完成。
至于pig2.X前端项目的部署,这里就不做叙述了,前端部署比较简单,按照pig官方文档教程一步步来就可以了。
pig前端项目地址
https://gitee.com/log4j/pig-ui
下面附几张pig2.X前端运行后的图片
如果该文章有帮助到您,就留言点个赞吧!您的支持与肯定是我持续更新最大的动力。