服务器环境搭建

nacos镜像

  1. 使用宝塔Docker管理器直接拉起nacos环境并运行



注意:在同一台服务器中,nacos只对内网才能注册,图中172.17.0.2是内网地址,在多台服务器中需要跨ip注册服务需要百度自行学习,本次部署使用同一台服务器部署。

启动命令

//加内存限制启动
docker run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=32m \
-e JVM_XMX=128m \
-e JVM_XMN=32m \
-e JVM_MS=32m \
-e JVM_MMS=128m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
nacos/nacos-server:latest
//不加内存限制
docker run -d --name nacos -p 8848:8848 -e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server

RabbitMQ镜像

  1. 拉起RabbitMQ镜像并运行
//拉取镜像
docker pull rabbitmq
//部署容器
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
  1. 开启可视化界面https://blog.csdn.net/ruoshuiyx/article/details/128305746
  2. 修改密码
docker exec -it 容器id /bin/bash
输入命令开启可视化
rabbitmq-plugins enable rabbitmq_management
#查看用户列表
rabbitmqctl list_users
#修改密码
rabbitmqctl change_password guest 'Newpassword'

注意:项目部署最好也使用内部ip访问rabbitmq

Redis

  1. 可以使用宝塔一键集成Redis,也可以Docker搭建环境Redis,

步骤:

docker安装redis:https://blog.csdn.net/weixin_45821811/article/details/116211724

redis外网连接:https://blog.csdn.net/zhoumengshun/article/details/112862448

注意:外网连接需要修改redis连接密码,不然会被攻击

本地配置

利用idea插件连接服务器的docker

注意连接服务器docter必须使用钥密验证,不能直连,服务器会被侵入。



idea连接ca证书步骤:https://blog.csdn.net/qq_41946543/article/details/104159687

可以直接用我的脚本

  1. 新建文件夹 auto.sh
  2. 终端命令 sh auto.sh
  3. 去文件夹/etc/docker
  4. 导出我们需要的文件ca.pem,cert.pem,key.pem





证书自动脚本,全新可用

# !/bin/bash

# 一键生成TLS和CA证书

# Create : 2023-08-03
# Update : 2023-08-03
# @Autor : madou # 服务器ip名
SERVER="服务器ip"
# 密码
PASSWORD="密码"
# 国家
COUNTRY="CN"
# 省份
STATE="sc"
# 城市
CITY="cd"
# 机构名称
ORGANIZATION="madou"
# 机构单位
ORGANIZATIONAL_UNIT="madou"
# 邮箱
EMAIL="841838856@qq.com" echo "生成文件完成"
#切换到生产密钥的目录
cd /etc/docker
# 生成CA密钥
#生成ca私钥(使用aes256加密)
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 4096
#生成ca证书,填写配置信息
openssl req -new -x509 -passin "pass:$PASSWORD" -days 365 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL" #生成server证书私钥文件
openssl genrsa -out server-key.pem 4096
#生成server证书请求文件
openssl req -subj "/CN=$SERVER" -sha256 -new -key server-key.pem -out server.csr sh -c 'echo "subjectAltName = IP:139.155.130.108,IP:0.0.0.0" > extfile.cnf'
sh -c 'echo "extendedKeyUsage=serverAuth " >> extfile.cnf' #使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem -extfile extfile.cnf #生成client证书RSA私钥文件
openssl genrsa -out key.pem 4096
#生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr sh -c 'echo "extendedKeyUsage=clientAuth" > extfile-client.cnf'
#生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile-client.cnf #更改密钥权限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem
#删除无用文件
rm client.csr server.csr
echo "生成文件完成"
  1. 记得去docker配置文件修改信息

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
替换
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
  1. 根据博客流程重启docker
systemctl daemon-reload
systemctl restart docker service docker restart
  1. idea连接



连接完成后配置docker插件



配置文件部署环境

建三个配置文件,分别为dev本地环境,prod部署环境,和主环境

开启配置文件环境

  1. 当本地运行会选择dev,打包部署会选择prod
  2. 将prod中nacos,redis,rabbitmq,mysql的信息配置正确
//application.yml
spring:
profiles:
active: dev
//application-dev.yml
spring:
config:
activate:
on-profile:
- dev
//application-prod.yml
spring:
config:
activate:
on-profile:
- prod

支付功能配置

  1. 需要自己去支付宝注册沙盒
  2. 将ip地址改为项目网关ip
  3. 本地使用支付需要内网穿透

Dockerfile文件配置

Dockerfile-chart,其它Dockerfile类似,内存太小服务可能会挂掉

FROM openjdk:8
VOLUME /tmp
COPY target/*.jar gebi-text.jar
ENV PORT=9096
ENTRYPOINT ["java","-jar","-Xms64m","-Xmx128m","gebi-text.jar","--spring.profiles.active=prod"]
EXPOSE $PORT

准备启动



启动之后会自动打包部署置服务器上注意打开项目端口



服务器上可以看到



部署成功

前端部署

  1. 使用宝塔面板部署
  2. 项目app.ts修改一下ip地址

  1. 打包直接部署即可

【技术积累】Docker部署笔记的更多相关文章

  1. docker 部署 笔记

    Docker虚拟机常用命令 先更新软件包 yum -y update   安装Docker虚拟机 yum install -y docker   运行.重启.关闭Docker虚拟机 service d ...

  2. 笔记14:Docker 部署Python项目

    Docker 部署Python项目 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如果从一种操作系统里面运行另一种操作系统,通常我们采取 ...

  3. Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

    上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...

  4. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  5. Docker日志管理--docker部署安装ELK (十一)--技术流ken

    Docker logs 对于一个运行的容器,Docker 会将日志发送到 容器的 标准输出设备(STDOUT)和标准错误设备(STDERR),STDOUT 和 STDERR 实际上就是容器的控制台终端 ...

  6. Docker学习笔记三:Docker部署Java web系统

    Docker部署Java Web系统 1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app && ...

  7. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  8. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  9. WSL2+Docker部署RabbitMQ以及在Asp.net core 中使用RabbitMQ示例(1)

    本文主要在于最近因疫情不能外出,在家研究的一些技术积累. 主要用到的技术以及知识点: WSL 2 WSL 2+Docker Docker+RabbitMQ 在ASP.NET Core中使用Rabbit ...

  10. docker学习笔记(3)- 镜像

    简介 在docker学习笔记(1)- 架构概述一节中可以看到镜像是docker三大组件之一,可以将Docker镜像类比为虚拟机的模版. 镜像由多个层组成,每层叠加之后从外部看就像一个独立的对象,镜像的 ...

随机推荐

  1. c#构建具有用户认证与管理的socks5代理服务端

    Socks 协议是一种代理 (Proxy) 协议, 例如我们所熟知的 Shdowsocks 便是 Socks 协议的一个典型应用程序, Socks 协议有多个版本, 目前最新的版本为 5, 其协议标准 ...

  2. 使用android studio发布android与flutter混合开发项目

    一.生成androd签名证书 Android studio的Build > Grenerate Signed Bundle 选择apk 点击Create New 录入对应的签名信息:点击确定 对 ...

  3. Kubernetes(k8s)健康性检查:livenessprobe探测和readinessprobe探测

    目录 一.系统环境 二.前言 三.Kubernetes健康性检查简介 四.创建没有探测机制的pod 五.添加livenessprobe探测 5.1 使用command的方式进行livenessprob ...

  4. Java(包机制、doc、Scanner对象)

    包机制 本质:文件夹 用于区别类名的命名空间 一般利用公司域名倒置作为包名 import与通配符* 导入包 例: import java.util.Scanner; import com.xxx.xx ...

  5. 实用的windows快捷键

    Alt+F4 关闭窗口 win+D 显示桌面 win+Tab 切换窗口 Alt+Tab 应用之间的切换 win+E 打开我的电脑 Ctrl+Shift+Esc 打开任务管理器 Home 回到行首 En ...

  6. DosBox环境配置

    DosBox环境配置 DOSBox 是一个基于 x86 架构的 PC 的模拟器,它允许用户在现代操作系统上运行 DOS 程序.DOSBox 是自由软件,可以在 Windows.Linux ,macOS ...

  7. CentOS7 配置本地yum源软件仓库

    CentOS7 配置本地yum源软件仓库 前言 配置本地yum源软件仓库可以离线状态下安装本地已有的软件 先连接虚拟光驱,对应的光驱iso文件 查看磁盘分区状态 可以看到sr0 未挂载 [root@l ...

  8. Linux系统基础知识与自学方法

    Linux系统基础知识与自学方法 大部分非计算机相关的朋友也经常使用电脑,所以我们频繁接触的是Windows系统.关于这个系统的评价不一,一部分人觉得简洁快捷,一部分人觉得问题(病毒.弹窗)多多,总之 ...

  9. 【tvm解析】PACKFUNC机制

    为实现多种语言支持,需要满足以下几点: 部署:编译结果可以从python/javascript/c++调用. Debug: 在python中定义一个函数,在编译函数中调用. 链接:编写驱动程序以调用设 ...

  10. CHATGPT制作AI绘画

    CHATGPT是一种基于机器学习和自然语言处理技术的人工智能应用.它可以生成自然语言文本,并且可以通过训练来学习各种不同的技能. 其中,CHATGPT制作AI绘画指的是将CHATGPT应用于绘画领域, ...