docker安装apollo

Docker安装Mysql

使用Docker安装Mysql是比较方便的,最简单的只需一句命令即可完成。但如需安装且配置好则需要准备一点前期工作

拉取镜像

docker pull mysql

使用命令拉取mysql的镜像包,如需指定版本添加接口,不指定默认latest。

创建挂载目录

拉取镜像后建议将配置文件,数据,日志挂载出来。方便后续修改配置或排查问题。

mkdir -p /opt/mysql/conf
mkdir -p /opt/mysql/data
mkdir -p /opt/mysql/logs

创建配置文件

创建完挂载目录后在 /opt/mysql/conf目录下创建my.cnf文件,文件内容即为Mysql配置文件内容。

[mysqld]
port=3307
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
lower_case_table_names = 1
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

运行容器

挂载目录与配置文件准备好后,即可使用命令运行Mysql容器,使用-v将挂载目录、配置文件映射好。

docker run --name mysql -p 3307:3307 -v /opt/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always --privileged=true -d mysql

如果配置文件中未设置port端口,则-p则需要为3306:3306

连接测试

使用Navicat创建连接测试即可。账号为root,密码为启动容器时设置的。端口为配置文件中设置的,如未设置端口则为默认3306端口。

Docker安装Apollo

拉取镜像

Docker安装Apollo首先需要拉取apollo所需要的镜像包,apollo所需的镜像包有三个。分别是apollo-configservice、apollo-adminservice、apollo-portal。

docker pull apollo-configservice
docker pull apollo-adminservice
docker pull apollo-portal

与上述安装Mysql一致,如不指定版本则默认latest

准备配置数据

首先需要apollo配置数据的sql脚本文件。可在apollo的github上获取。
apollo github地址

apollo配置数据sql脚本
获取到脚本文件后在Navicat 刚创建的Mysql连接中运行即可。
运行之后修改apolloconfigdb数据库的serverconfig表中的eurekaUrl的值
修改eurekaUrl的值
将Ip地址替换为服务器IP,端口可以修改可以不修改,对应后续启动容器时的端口。

运行容器

因为apollo拉取了三个镜像包,所以自然需要运行三个容器。且运行容器的顺序建议先是config,再是admin,最后才是portal

启动config

docker run -itd --net=apollo_default --restart=always -p 9180:8080  \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://IP:3307/apolloconfigdb?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -d -v /tmp/logs:/opt/logs --name apollo-configservice apollo-configservice

其中 IP需要替换为对应的IP,–net 需要选择一个存在的bridge类型的网络。可创建,以下启动apollo其他容器相同适用。

启动admin

docker run -itd --net=apollo_default --restart=always -p 9181:8090 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://IP:3307/apolloconfigdb?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -d -v /tmp/logs:/opt/logs --name apollo-adminservice apollo-adminservice

启动portal

docker run -itd --net=apollo_default --restart=always -p 9182:8070 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://IP:3307/apolloportaldb?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -e APOLLO_PORTAL_ENVS=dev \
    -e DEV_META=http://IP:9180 \
    -d -v /tmp/logs:/opt/logs --name apollo-portal  apollo-portal

运行验证

启动成功后可使用命令查看容器状态

docker ps

或者查看日志,因为上述命令将日志挂载出来了,所以再挂载目录地址下可查看日志信息。

或者打开http://Ip:9182/
查看是否能打开apollo页面
在这里插入图片描述
apollo默认账号密码为 apollo 与 admin

所遇问题

如果mysql密码使用了特殊字符,则会出现pid - just quit unexpectedly, please check logs under /opt/logs/100003171 and /tmp 报错

如果mysql设置了大小写敏感,则可能出现Table ApolloConfigdb not exists报错。

如果使用的–net 属性为host 的网络,则可能出现无法连接到eureka地址

并且如果使用的为 host属性的网络,-p映射左右端口需一致,均为服务器端口

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值