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前端運行後的圖片
如果該文章有幫助到您,就留言點個贊吧!您的支持與肯定是我持續更新最大的動力。