一、前置準備工做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
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
(6)安裝unzip解壓工具 yum install zip unzip
(7)服務器IP狀況假設以下:mysql
MySQL部署所在服務器IP爲 MySQL_IP(下文均經過這個來指代) 假設MySQL登陸用戶名密碼爲root/123456
Apollo部署所在服務器IP爲 Apollo_IP(下文均經過這個來指代)
特別注意:因爲業務系統須要訪問Apollo獲取配置,若是Apollo_IP和業務系統再也不一個局域網,那麼Apollo_IP必須是外網IP,同理,因爲Apollo須要訪問MySQL,若是MySQL_IP和Apollo_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登陸用戶名和密碼)數據庫
version: "3"
services:
apollo-config: ##容器服務名
container_name: apollo-config ##容器名
build: apollo-config/ ##Dockerfile路徑
image: apollo-config ##鏡像名
ports:
- "8847:8847"
volumes:
- "/opt/logs/100003171:/opt/logs/100003171" ##將容器中應用日誌掛載到宿主機的/opt/logs/100003171方便在宿主機上查看日誌
environment:
- spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=123456
- JAVA_OPTS=-Deureka.instance.ip-address=Apollo_IP
apollo-admin:
container_name: apollo-admin
build: apollo-admin/
image: apollo-admin
ports:
- "8090:8090"
depends_on:
- apollo-config
volumes:
- "/opt/logs/100003172:/opt/logs/100003172"
environment:
- spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=123456
apollo-portal:
container_name: apollo-portal
build: apollo-portal/
image: apollo-portal
ports:
- "8070:8070"
depends_on:
- apollo-admin
volumes:
- "/opt/logs/100003173:/opt/logs/100003173"
environment:
- spring_datasource_url=jdbc:mysql://MySQL_IP:3306/ApolloPortalDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=123456
- JAVA_OPTS=-Dpro_meta=http://Apollo_IP:8847
(2)導入sql數據庫腳本 — 參見《Apollo-mysql-普通部署實施》中的第4點瀏覽器
相比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分鐘),若爲以下則啓動成功:
特別說明:看到上述日誌輸出說明啓動命令執行成功,可是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的地址爲對應的地址就好,通常實際部署咱們建議作這個替換