Linux Server 部署Springboot环境(Docker版)

Linux Server 部署

服务器设置ssh登录?

一:创建SSH密匙

在SSH密匙控制台创建SSH密匙,SSH密匙创建地址如下:https://console.cloud.tencent.com/lighthouse/sshkey/index
image-20230306213427350

二:下载SSH密钥

创建完SSH密匙后,下载密匙,腾讯云不会保管私钥信息,需要在10分钟内点击"下载"按钮获取私钥,将私钥信息下载到本地,私钥名称是创建SSH密匙时的密匙名称。

三:腾讯云服务器关联SSH密匙

image-20230306214019435

四:使用终端连接工具(Xshell为例)登陆

输入自定义名称,主机填写你的公网ip,然后确定

image-20230306213750228

输入用户名

image-20230306214427201

密码不用输入,选择使用SSH验证,秘钥为第二步我们下载的秘钥

image-20230306214445048

可以看到已经登陆成功了,执行一些命令都是可以的

image-20230306214558405

如何创建快照?

云服务器中的快照,就是某一个时间点上某一个磁盘的数据备份。用于服务器故障时的数据恢复

image-20230306214845783

使用Docker部署Springboot项目

目前Java项目大部分都是使用Spring Boot搭建项目,再使用Docker快速部署,本文简单介绍Docker的安装和Docker部署Spring Boot项目,该文档基于Linux系统为Centos7

Docker安装Springboot项目:https://blog.csdn.net/oqqZhe1234/article/details/127976423

Docker安装Redis:https://blog.csdn.net/weixin_45821811/article/details/116211724?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167818313216800227497564%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=167818313216800227497564&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~hot_rank-1-116211724-null-null.142v73pc_new_rank,201v4add_ask,239v2insert_chatgpt&utm_term=docker%E9%83%A8%E7%BD%B2redis&spm=1018.2226.3001.4187

安装Docker

docker 安装社区版本CE

确保 yum 包更新到最新。
yum update
卸载旧版本(如果安装过旧版本的话)
yum remove docker  docker-common docker-selinux docker-engine
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
yum install <自己的版本>  # 例如:sudo yum install docker-ce-17.12.0.ce
启动和开机启动
systemctl start docker
systemctl enable docker
验证安装是否成功
docker version

Docker配置Mysql

docker pull mysql:5.7 # 5.7 是指定版本号

# mysql 5.x使用此命令,挂载目录与8.x有所不同
docker run -p 3306:3306 --name mysql --restart=always -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=zcjwoaini -d mysql:5.7

Docker配置Nginx

docker pull nginx # 这里没写版本号,意思是拉取最新的版本

启动前需要先创建Nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf)
之所以要先创建 , 是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件
当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果 。

生成容器

docker run --name mynginx -p 80:80 -d nginx

将容器nginx.conf文件复制到宿主机

docker cp mynginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf

将容器conf.d文件夹下内容复制到宿主机

docker cp mynginx:/etc/nginx/conf.d /home/nginx/conf/conf.d

将容器中的html文件夹复制到宿主机

docker cp mynginx:/usr/share/nginx/html /home/nginx/

拷贝完文件后,我们需要删除这个Nginx容器,然后用-v挂载数据卷的形式,即可将容器内文件挂载到我们宿主机上

# 找到nginx对应的容器id
docker ps -a

# 关闭该容器
docker stop nginx

# 删除该容器
docker rm nginx

# 删除正在运行的nginx容器
docker rm -f nginx

启动容器命令

docker run \
-p 80:80 \
--restart=always \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx

参数说明:
-p 映射端口,格式为“宿主机端口:容器端口”
-v 挂载文件

-e TZ=Asia/Shanghai 设置时区

–privileged=true 让容器中的root用户拥有真正的root权限

–name 容器名字,以后可以使用这个名字启动或者停止容器

–restart=always docker启动时自动启动容器
-d 指定要启动的镜像名

容器中的nginx.conf文件和conf.d文件夹复制到宿主机

启动容器报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aZNmrI0E-1678431479283)(G:/typora/assets/image-20230308124219132.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tU8f6TIZ-1678431479284)(G:/typora/assets/image-20230308124203008.png)]

出现的原因是 /home/nginx.conf 是一个目录,而不是文件

解决方法就是删除nginx.conf 目录,然后新建一个nginx.conf 文件就可以了。如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UzbUWZi5-1678431479284)(G:/typora/assets/image-20230308124310819.png)]

再次运行容器启动命令,还是发现报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VWuKtkuY-1678431479284)(G:/typora/assets/image-20230308124354590.png)]

这里是因为刚启动容器的名字已经被使用了,我们执行docker ps -a(列出未运行的容器,将这个容器删除后,再执行运行容器命令即可)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NgtHkCnr-1678431479284)(G:/typora/assets/image-20230308124545535.png)]

可以看到已经成功执行了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UGVpUxR9-1678431479285)(G:/typora/assets/image-20230308124650600.png)]

Docker配置Jenkins

待完成

Docker配置Redis

docker pull redis:5.0 # 5.0 是指定版本号

接下来就是要将redis 的配置文件进行挂载,以配置文件方式启动redis 容器。(挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)

1)、挂载 redis 的配置文件
2)、挂载 redis 的持久化文件(为了数据的持久化)。

本人的配置文件是放在

liunx 下redis.conf文件位置: /home/redis/myredis/redis.conf
liunx 下redis的data文件位置 : /home/redis/myredis/data

image-20230307181658982

运行Redis容器

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 000415
--restart=always 总是开机启动

--log是日志方面的

-p 6379:6379 将6379端口挂载出去

--name 给这个容器取一个名字

-v 数据卷挂载
- /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。
- /home/redis/myredis/data:/data 这个同上

-d redis 表示后台启动redis

redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf

–appendonly yes 开启redis 持久化

–requirepass 000415 设置密码 (免得Redis被挖矿攻击了)

成功界面

image-20230307183655725

通过Docker ps指令查看启动状态

docker ps -a    #列出所有容器(-a 包含未运行的容器)

image-20230307183906066

容器内连接Redis

docker exec -it myredis redis-cli    
auth 密码      #刚设置的Redis密码    

image-20230307183936952

查看当前redis有没有设置密码:(得验证通过了才能输入的)

config get requirepass

image-20230307184105095

docker设置redis密码

方法一:创建redis容器并设置密码

docker run -itd --name redis-6379 -p 6379:6379 redis --requirepass 123456

--name (启动容器的名称) 
-p 映射端口:redis启动端口 redis 
--requirepass 启动密码

方法二:为现有的redis创建密码或修改密码的方法:

#1.进入redis的容器
docker exec -it myredis redis-cli    

#2.查看现有的redis密码:
config get requirepass

#5.设置redis密码
config set requirepass 密码

Redis配置文件

myredis.conf

# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1

protected-mode no
port 6379
tcp-backlog 511
requirepass 000415
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

Docker删除Redis

查看所有在运行的容器

docker ps 

image-20230307184447846

删除redis 容器

docker rm myredis
查看全部镜像
docker images

image-20230307184616617

删除Redis镜像

docker rmi 99ee9af2b6b1 # 这是我镜像redis id  

Docker安装Zfile

Zfile Docker Hub:https://hub.docker.com/r/stilleshan/zfile

下方高亮部分,可自定义端口和数据目录:

  • 端口号:第 2 行冒号左侧的 808 表示对外暴露的端口号,如其他程序占用,则请修改为其他端口号。
  • 数据目录:第 5 行的 -v /root/zfile/file:/data/file \ 为映射宿主机文件夹 /root/zfile/file 到容器内的 /data/file 文件夹,这样需要在 ZFile 添加本地存储时,填写容器内目录 /data/file 就等同于访问宿主机的 /root/zfile/file 目录了。 这一行按照自己的需求修改,如果不需要映射本地存储,则可以删除这一行。
docker run -d \
    --name=zfile \
    --restart=always \
    -p 8081:8080 \
    -v /root/zfile/conf:/root/.zfile-v4 \
    -v /root/zfile/data:/root/zfile/data \
    stilleshan/zfile

Zfile访问地址

http://IP:8081

存储源设置

image-20230308114401087

测试上传图片

image-20230308114633079

上传成功

image-20230308114642317

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值