背景
我简历想写这个项目, 自己也确实学习和研究过, 想作为自己的一个项目学习经验.
服务器购买
个人地址: https://ecs.console.aliyun.com/server/region/cn-hangzhou#/
环境准备
参考官方地址: https://www.moguit.cn/info/1151
这里防止官方的文章被和谐删除, 这里自己做一个简单的搭建记录.
配置Docker, 使用阿里云镜像
cat >/etc/yum.repos.d/docker.repo<<EOF
[docker-ce-edge]
name=Docker CE Edge - \$basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF
使用yum方式安装Docker
# yum安装
yum -y install docker-ce
# 查看docker版本
docker --version
# 开机自启
systemctl enable docker
# 启动docker
systemctl start docker
配置Docker镜像源
cat >> /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
重启Docker
systemctl restart docker
安装编排工具: Docker Compose
先上传安装包:
// TODO 这里后续补充一个安装包下载地址. 但是阿里云盘可能会被优快云和谐掉. 后续可以放一个B站的链接, 然后把资源链接放到B站.
我按照博客进行了如下操作:
# 重命名
mv docker-compose-Linux-x86_64 docker-compose
# 加入执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看docker-compose版本
docker-compose -v
配置服务器: 开放安全组
RabbitMQ消息队列:15672
Zipkin链路追踪: 9411
发Email端口:465
图片资源:8600
前端Web页面:9527
后端Admin页面:9528
Redis:6379
Mysql:3306
Tomcat[里面部署的solr]:8080
HTTP端口:80
Kibana端口:5601
mogu_admin端口:8601
mogu_picture端口:8602
mogu_web端口:8603
mogu_sms端口:8604
mogu_search端口:8605
mogu_monitor端口:8606
mogu_gateway端口:8607
nacos端口: 8848
sentinel端口: 8070
portainer端口:9000
应用部署
创建网络
docker network create mogu
移动部署需要的脚本
需要更换一下IP地址
避免遇到问题, 按照文档安装这个工具:
# 安装 dos2unix
yum -y install dos2unix*
# 转换脚本
dos2unix kernStartup.sh
dos2unix kernShutdown.sh
dos2unix update.sh
dos2unix wait-for-it.sh
开始一键安装
所有的细节都在这个脚本里面, 实现了一键快速安装.
服务展示
客户端前端
客户端前端: http://www.zhengbizhong.site/#/
管理端后端
管理端后端: http://admin.zhengbizhong.site/#/dashboard
Portainer面板
Portainer面板: http://114.55.173.35:9000/#/images
其他细节
修改Ngnix配置启动
用这个配置可以隐藏端口信息. (属于自定义的配置, 仅提供参考)
server {
listen 80;
server_name www.zhengbizhong.site;
location / {
proxy_pass http://www.zhengbizhong.site:9527;
}
}
server {
listen 80;
server_name admin.zhengbizhong.site;
location / {
proxy_pass http://www.zhengbizhong.site:9528;
}
}
server {
listen 8600;
server_name localhost;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,lang,access-token';
if ($request_method = 'OPTIONS') {
return 204;
}
location / {
root /home/mogu_blog/mogu_data/;
index index.html index.htm;
}
}
所有服务启动
包含2个前端项目, 一些后端服务和一些基础中间件:
缓存: Redis
数据库: MySQL
消息队列: RebbitMQ
代理服务器: Ngnix
上传自己本地的镜像
参考: https://www.moguit.cn/info/588?subject=448f45e5432689ba706587aa759125d6
核心:
1.开启docker配置, 2375端口:
进入如下配置:
vi /usr/lib/systemd/system/docker.service
找到如下配置并替换:
原来的配置: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
替换后的配置: ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
2.利用Docker插件打包上传:
工具和Docker服务连接:
这个是Dockerfile文件:
就这个简单的配置, 就可以构建了:
自己传上去的效果是这样的:
通过镜像启动容器
用 Docker Compose 启动, 具体看里面的代码.