Apollo-mysql-docker部署

一、前置準備工做html

部署Apollo的目標服務器要求:
(1)Linux 發行版本建議CentOS7 (因爲Apollo服務內置3個JVM進程 全部系統可用內存建議不低於2G)
(2)安裝MySQL 版本5.6.5+(爲Apollo部署MySQL服務,也能夠借用已經部署好的MySQL服務)
(3)安裝JDK 版本1.8+
(4)安裝Docker 版本1.13+
(5)安裝docker-composepython

  1. yum -y install epel-release
  2. yum -y install python-pip
  3. pip install docker-compose

(6)安裝unzip解壓工具 yum install zip unzip
(7)服務器IP狀況假設以下:mysql

  1. MySQL部署所在服務器IP MySQL_IP(下文均經過這個來指代) 假設MySQL登陸用戶名密碼爲root/123456
  2. Apollo部署所在服務器IP Apollo_IP(下文均經過這個來指代)
  3. 特別注意:因爲業務系統須要訪問Apollo獲取配置,若是Apollo_IP和業務系統再也不一個局域網,那麼Apollo_IP必須是外網IP,同理,因爲Apollo須要訪問MySQL,若是MySQL_IPApollo_IP不屬於同一個局域網,MySQL_IP也必須是外網IP

二、下載Apollo初始安裝文件apollo-mysql-docker.zipspring

三、本地解壓初始安裝文件,修改Apollo相關鏈接配置信息sql

解壓後獲得的文件目錄爲:
apollo-config\
apollo-admin\
apollo-portal\
sql\
docker-compose.ymldocker

(1)修改docker-compose.ymlshell

替換其中的MySQL_IP和Apollo_IP、設置spring_datasource_username和spring_datasource_password(即對應的MySQL登陸用戶名和密碼)數據庫

  1. version: "3"
  2. services:
  3. apollo-config: ##容器服務名
  4. container_name: apollo-config ##容器名
  5. build: apollo-config/ ##Dockerfile路徑
  6. image: apollo-config ##鏡像名
  7. ports:
  8. - "8847:8847"
  9. volumes:
  10. - "/opt/logs/100003171:/opt/logs/100003171" ##將容器中應用日誌掛載到宿主機的/opt/logs/100003171方便在宿主機上查看日誌
  11. environment:
  12. - spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
  13. - spring_datasource_username=root
  14. - spring_datasource_password=123456
  15. - JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
  16. apollo-admin:
  17. container_name: apollo-admin
  18. build: apollo-admin/
  19. image: apollo-admin
  20. ports:
  21. - "8090:8090"
  22. depends_on:
  23. - apollo-config
  24. volumes:
  25. - "/opt/logs/100003172:/opt/logs/100003172"
  26. environment:
  27. - spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
  28. - spring_datasource_username=root
  29. - spring_datasource_password=123456
  30. apollo-portal:
  31. container_name: apollo-portal
  32. build: apollo-portal/
  33. image: apollo-portal
  34. ports:
  35. - "8070:8070"
  36. depends_on:
  37. - apollo-admin
  38. volumes:
  39. - "/opt/logs/100003173:/opt/logs/100003173"
  40. environment:
  41. - spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloPortalDB?characterEncoding=utf8
  42. - spring_datasource_username=root
  43. - spring_datasource_password=123456
  44. - JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847

(2)導入sql數據庫腳本 — 參見《Apollo-mysql-普通部署實施》中的第4點瀏覽器

  1. 相比Apollo的普通部署不一樣,docker部署這裏導入SQL後須要到ApolloConfigDB找到ServerConfig表將eureka.service.url的值修改成http://Apollo_IP:8847/eureka/

四、使用SFTP工具將修改並從新壓縮後的apollo-mysql-docker.zip上傳到目標Linux服務器指定目錄如/home/apollo下,而後在該目錄下依次運行以下命令:服務器

(1)unzip apollo-mysql-docker.zip
(2)docker-compose up -d

等待並觀察日誌輸出(大概5分鐘),若爲以下則啓動成功:

  1. 特別說明:看到上述日誌輸出說明啓動命令執行成功,可是Apollo服務訪問還須要等待一段時間(再耐心等待幾分鐘)

五、啓動成功瀏覽器中http://Apollo_IP:8070訪問Apollo配置中心 默認dongzs/dongzs登陸(該帳戶下已經包含全部項目運行須要的相關配置 登陸後進行相應的配置修改便可知足項目運行須要)

六、執行 docker-compose down 能夠關閉Apollo服務

=================================================================

七、基於Docker鏡像的部署安裝:

(1)apolloconfig的啓動
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-e JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
-p 8847:8847
-v /opt/logs/100003171:/opt/logs/100003171
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloconfig:1.5.0

(2)apolloadmin的啓動
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-p 8090:8090
-v /opt/logs/100003172:/opt/logs/100003172
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloadmin:1.5.0

(3)apolloportal的啓動
docker run -d
-e spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloPortalDB?characterEncoding=utf8
-e spring_datasource_username=root
-e spring_datasource_password=123456
-e JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847
-p 8070:8070
-v /opt/logs/100003173:/opt/logs/100003173
-it registry.cn-hangzhou.aliyuncs.com/sw/apolloportal:1.5.0

說明1:上面(1)(3)中JAVA_OPTS後面指定的Apollo_IP必須爲前面(1)apolloconfig對應的服務地址(對應宿主機的服務地址)說明2:Apollo內置的Eureka註冊中心也能夠替換爲外部統一的註冊中心(便於將Apollo的歸入統一的服務監控),只需去apolloconfig對應的數據庫表ServerConfig中修改eureka.service.url的地址爲對應的地址就好,通常實際部署咱們建議作這個替換

相關文章
相關標籤/搜索