docker安装apollo

一. 介绍


Apollo 最主要有三个工程,会用这三个工程进行部署

  • Portal:是管理界面,对应有一个PortalDB数据库,Portal是用来管理有几个环境的,不管对接了几个环境,PortalPortalDB数据库只需要部署一份
  • ConfigAdmin:每个环境都有一个ConfigAdmin,对应每个环境都有一个自己的ConfigDB库,如果用于生产,ConfigAdmin至少部署两套,才能保证服务的高可用

二. 部署

2.1. 下载源码

https://github.com/ctripcorp/apollo

2.2 创建数据库

1) ApolloPortalDB 数据库

如果有多个环境,要修改ApolloPortalDBServerConfig表,不同环境之间用 , 隔开,默认只有dev

2) ApolloConfigDB 数据库

如果每个环境只部署一套configadmin,同时数据库也是在本机,所以默认的localhost不用改,后面如果每个环境部署多台机器,localhost需要修改成ip地址

2.3 配置数据库连接信息和各环境meta service地址(只配置了dev)

2.4 打包,使用idea Terminal

16872@DESKTOP-LF85VK5 MINGW64 /d/javaProject/idea/apollo (master)
$ ./scripts/build.sh start

2.5 idea登录Docker Hub

windows要先安装Docker Toolbox,并启动

16872@DESKTOP-LF85VK5 MINGW64 /d/javaProject/idea/apollo (master)
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (www19930327): www19930327
Password:
Login Succeeded

2.6 创建push.sh脚本文件build镜像并且pushDocker Hub

#!/bin/sh

# 删除docker目录 .zip 文件
rm -rf ./apollo-portal/src/main/docker/*-github.zip ./apollo-configservice/src/main/docker/*-github.zip ./apollo-adminservice/src/main/docker/*-github.zip

# 拷贝jar包文件到docker目录(有Dockerfile,并且context must be a directory,就是必须将jar包和Dockerfile放到一个文件夹里面,不能指定一个文件)
cp ./apollo-portal/target/*-github.zip ./apollo-portal/src/main/docker/
cp ./apollo-configservice/target/*-github.zip ./apollo-configservice/src/main/docker/
cp ./apollo-adminservice/target/*-github.zip ./apollo-adminservice/src/main/docker/

# build 镜像(www19930327是用户名)
docker build -t www19930327/apollo-portal ./apollo-portal/src/main/docker/
docker build -t www19930327/apollo-configservice ./apollo-configservice/src/main/docker/
docker build -t www19930327/apollo-adminservice ./apollo-adminservice/src/main/docker/

# push到镜像仓库
docker push www19930327/apollo-portal
docker push www19930327/apollo-configservice
docker push www19930327/apollo-adminservice

www19930327Docker Hub用户名

执行脚本

16872@DESKTOP-LF85VK5 MINGW64 /d/javaProject/idea/apollo (master)
$./scripts/push.sh start

push 成功

2.7 部署Apollo服务端

cent7要安装dockerdocker-compose安装方法 https://blog.csdn.net/qq_38983728/article/details/85161510

通过docker compose部署Apollo服务端,创建docker-compose.yaml文件,内容如下:

version: "3"

services:
  apollo-configservice:                                         ## 容器服务名
    container_name: apollo-configservice                        ## 容器名
    network_mode: "host"  # 容器有自己的内部网络和 ip 地址,使用指定网络方式为host,这个模式下创建出来的容器,直接使用容器宿主机的网络命名空间
    #build: apollo-configservice/src/main/docker/                ## Dockerfile路径
    image: www19930327/apollo-configservice                           ## 镜像名
    ports:
      - "8080:8080"    
    volumes:
      - "/opt/logs/100003171:/opt/logs/100003171"    ## 将/opt/logs/100003171目录挂载到宿主机的/opt/logs/100003171方便在宿主机上查看日志
  apollo-adminservice:
    container_name: apollo-adminservice
    network_mode: "host"
    #build: apollo-adminservice/src/main/docker/
    image: www19930327/apollo-adminservice
    ports:
      - "8090:8090"
    depends_on:
      - apollo-configservice
    volumes:
      - "/opt/logs/100003172:/opt/logs/100003172"
  apollo-portal:
    container_name: apollo-portal
    network_mode: "host"
    #build: apollo-portal/src/main/docker/
    image: www19930327/apollo-portal
    ports:
      - "8070:8070"
    depends_on:
      - apollo-adminservice
    volumes:
      - "/opt/logs/100003173:/opt/logs/100003173"

执行docker-compose 部署(当前文件夹下要有docker-compose.yaml文件)

[root@wanfei ~]# cd i/apps/apollo/
[root@wanfei apollo]# ls
docker-compose.yaml
[root@wanfei apollo]# vi docker-compose.yaml 
[root@wanfei apollo]# docker-compose up

# 下面是执行输出
......
Creating apollo-configservice ... done
Creating apollo-adminservice  ... done
Creating apollo-portal        ... done
Attaching to apollo-configservice, apollo-adminservice, apollo-portal
apollo-configservice    | Sat May 11 12:59:00 CST 2019 ==== Starting ==== 
apollo-configservice    | Started [53]
apollo-adminservice     | Sat May 11 12:59:03 CST 2019 ==== Starting ==== 
apollo-adminservice     | Started [53]
apollo-portal           | Sat May 11 12:59:04 CST 2019 ==== Starting ==== 
apollo-portal           | Started [53]
apollo-portal           | Waiting for server startup..............
apollo-portal           | Sat May 11 13:00:19 CST 2019 Server started in 70 seconds!

其他命令

# 也可以后台运行
[root@wanfei apollo]# docker-compose up -d
# 更新到最新镜像
[root@wanfei apollo]# docker-compose pull
# 停止镜像并删除
[root@wanfei apollo]# docker-compose down
# 指定 a.yaml 文件执行
[root@wanfei apollo]# docker-compose -f a.yaml up

2.8 部署成功

输入默认账号:apollo 密码:admin登录

三. 单个环境服务高可用配置

假设两台机器都部署dev环境,怎么配置:

3.1 PortalDB库只有dev

3.2 ConfigDB配置指向两个config的ip

3.3 Portal要修改指向的环境

dev_meta=http://192.168.2.27:8080,http://192.168.2.28:8080

3.4 两套 Config 和 Admin 都只改数据库,改成指向192.168.2.27数据库,然后部署

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值