系统概要以及所需软件版本
组件 | 版本 |
---|---|
Linux | Ubuntu 16.04 (推荐)及以上,CentOS 7.9 及以上 |
Docker | 版本 19.03.13及以上 |
Docker-Compose | 版本 2.2.2及以上 |
系统配置
配置 | 版本 |
---|---|
Ubuntu 系统 | 16.04 (推荐)及以上 |
CentOS 系统 | 7.9 及以上 |
CPU | 1.2GHz*8核心 |
内存 | 32G+ |
磁盘 | 500G,数据库服务器1T以上 |
1. 环境准备
1.1 下载安装包并检查系统版本、镜像源
1、下载HiperMATIC系统Linux安装包
APP下载
下载地址:https://www.pgyer.com/MqEy
密码:huicheng
提示:
cd /home
mkdir dockerDeployFile
2、检查当前服务器是否满足配置要求(Docker安装目前只支持64位操作系统Linux内核版本>=3.10)
查看位数命令:
uname -i
查看内核版本命令:
uname -a
3、检查镜像源(以Ubuntu 16.04为例)
检查系统镜像源是否能正常更新:
apt-get update
apt-get list --upgradable
若不能正常更新镜像源,需配置镜像源为国内镜像:
sudo su //进入root用户安装
cd /etc/apt
mv sources.list sources.list.bak //备份原配置
touch sources.list
chmod 777 sources.list
vim sources.list
中科大最新镜像源配置内容复制写入:
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
## Not recommended
# deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
1.2 安装Docker
安装命令:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
安装完成后,查看版本号:
docker -v
设置docker开机自启动:
systemctl enable docker
启动docker服务:
systemctl start docker
查看docker的运行状态:
systemctl status docker
注意:
删除docker,及其安装时自动安装的所有包:
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
删除docker其他没有卸载的:
dpkg -l | grep docker
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
卸载没有删除的docker相关插件:
sudo apt-get autoremove docker-ce-*
删除docker的相关配置&目录:
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
查看是否卸载成功(卸载成功后,直接上一步安装docker):
docker –v
1.3 安装Docker-Compose
安装命令如下(要安装其他版本的 Compose,请替换 v2.2.2):
sudo
curl -L
"https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname
-s)-$(uname -m)" -o /usr/local/bin/docker-compose
也可以使用国内 daocloud 一键安装命令(推荐):
sudo
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.2/docker-compose-`uname
-s`-`uname -m` > /usr/local/bin/docker-compose
查看docker-compose版本号:
docker-compose
--version
若提示“-bash: /usr/local/bin/docker-compose: 权限不够”,可执行:
chmod +x /usr/local/bin/docker-compose
2. 前后端服务部署
2.1 Docker-compose部署应用
进入/home/HiperMaticDeploy/dockerDeployFile 路径下,根据实际服务器ip以及端口占用情况配置.env文件:
参数说明:
必填项可以直接使用默认值,也可以修改,红字说明的配置项一般使用默认值即可;
- server_ip: 服务端ip地址,用于修改common.yaml配置中的数据库连接ip,前端访问地址(必填);
- rabbitmq_data_port: rabbitmq连接地址(必填);
- rabbitmq_stomp_port: 前端stomp端口(必填);
- rabbitmq_management_port: rabbitmq管理端端口(必填);
- rabbitmq_default_user: rabbitmq用户名(必填);
- rabbitmq_default_pass: rabbitmq密码(必填)
- redis_port: redis端口(必填);
- mysql_port: mysql端口(必填);
- mysql_username: mysql用户名(必填);
- mysql_password: mysql密码(必填);
- nacos_port: nacos端口(必填);
- nacos_discovery_namespace: nacos服务发现命名空间(
必填,建议不要修改,容器其他服务都使用了这个命名空间,后期可以自行调整,2.5.1版本默认空间名改为了dev
); - nacos_config_namespace: nacos配置中心命名空间
(
必填,建议不要修改,容器其他服务都使用了这个命名空间,后期可以自行调整,2.5.1版本默认空间改为了dev
);
修改完成后,执行以下启动脚本,注意使用
chmod +x deploy.sh
加上执行权限;./deploy.sh
查看当前docker-compose都启动了哪些服务:
docker-compose ps
2.2 Nacos注册中心管理配置
全部服务显示状态为done后,
通过浏览器(推荐Chrome)访问nacos的管理界面:http://localhost:8848/nacos/index.html#/login (IP地址根据项目部署情况自行修改)
用户名:nacos 密码:nacos
可以在nacos中查看服务的注册情况
2.3 问题及解决方案
1. 如何查看服务是否启动成功?
- 使用
docker ps
命令查看容器是否创建完成; - 查看
nacos的服务列表,
检查服务是否全部注册;
2. 如何解决有的服务没有启动成功?
- 使用
docker logs -f 容器名
查看启动日志; - 服务名可以使用
docker ps
查看,名称为NAMES
这列;
可能会有以下两种错误:
1.
此种错误原因是服务启动时会存在服务之间的调用,而这类操作需要授权,需要等到服务授权完成后,使用
docker restart 容器名
重启服务解决;2.
此种错误原因是因为服务启动时需要连接mysql,而mysql容器创建完成后并不能马上接受服务的连接,所以出现连接不上的状况,需要使用
docker restart 容器名
重启服务解决; 3. 如何部署自己的服务及与其他服务通信?
部署方式分为两种:
1. 使用java启动jar包(需要安装java8的运行环境),nacos的注册端口已经从容器中暴露,默认值为8848,可以修改配置中的
server-addr
和namespace
与其他服务通信;2. 打包成镜像启动,具体打包镜像不在此处说明,将自己的服务配置添加到docker-compose文件中,然后docker-compose up: