ESL系統的Docker化部署

ESL須要四臺服務器:分別是數據庫Mysql服務器,Redis服務器,EMQ服務器,以及Spring Boot所在web服務器。Docker化部署就是將這四臺服務器所有放在container中運行,經過--link的方式,實現web服務器對其餘三臺服務器的訪問。java

1. Mysql的docker化:操做參考上一篇博文,只須要將兩個sql文件,根據實際狀況進行修改,將鏡像打包爲zkong/database, 啓動:web

docker run --name=elsdata -d -p 23306:3306 zkong/database

2. Redis:可經過redis的docker官方鏡像進行安裝。redis

docker pull redis
docker run --name=musing_ramanujan -d -p 26379:6379 redis

3. EMQ: 下載emqtt的docker鏡像,http://www.emqtt.com/downloadssql

wget http://www.emqtt.com/downloads/2318/docker
unzip <下載到的zip文件>
docker load < <解壓後的文件>
docker image ls
docker run -tid –name=emq20 -p 21883:1883 -p 28083:8083 -p 28883:8883 -p 28084:8084 -p 38083:18083 <鏡像名稱>

4. ESL web系統docker

新建Dockerfile,如:數據庫

FROM java:8
EXPOSE 9999

VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

新建目錄eslapp,並把Dockerfile和demo-0.0.1-SNAPSHOT.jar放入其中bash

mkdir eslapp
cd eslapp
docker build -t zkong/esl .

啓動,使用--link方式,使得web服務器能夠訪問其餘三個容器的服務,因此其餘三個容器啓動時都會帶上--name指定container名稱服務器

docker run -p 29999:9999 --link emq20:emq20 --link musing_ramanujan:eslredis --link esldata:esldata zkong/esl

在web服務器的container中使用的其餘container的別名進行訪問,因此須要在application.yml中將各個服務的訪問地址改成運行別名。(部署配置侵入到了代碼中!須要尋找更優的解決方案!)app

相關文章
相關標籤/搜索