CentOS Stream 9使用Docker 部署vue3+springboot项目

CentOS Stream 9 使用Docker部署项目

准备

下载CentOS Stream 9镜像

官网服务器在境外 ,访问缓慢可以使用清华镜像

官网

清华镜像
在这里插入图片描述

centos安装到本地虚拟机可以使用VMWare Worksation Player

进入VMWare软件,新建虚拟机,参数默认即可,后期可以根据需求调整。
在这里插入图片描述

由于CentOS包管理器yum的下载服务器在境外,比较慢 可以进行换源

mkdir /etc/yum.repos.d/backup

cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

sed -i 's|metalink|#metalink|g' /etc/yum.repos.d/*.repo

sed -i '/name=CentOS Stream $releasever - BaseOS/a baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/$basearch/os/' /etc/yum.repos.d/*.repo

sed -i '/name=CentOS Stream $releasever - AppStream/a baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/os/' /etc/yum.repos.d/*.repo

sed -i '/name=CentOS Stream $releasever - Extras packages/a baseurl=https://mirrors.aliyun.com/centos-stream/SIGs/$stream/extras/$basearch/extras-common/' /etc/yum.repos.d/*.repo

yum clean all

yum makecache

yum update

安装一些必要的依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

下载docker

添加docker仓库

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

下载docker

sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 笔者这里遇到下载缓慢,失败的情况,于是在本机手动下载rpm,上传至centos,手动安装

rpm下载地址

下载各个组件最新版本即可
在这里插入图片描述

将所有rpm打包 可以使用scp命令进行上传

scp Archive.zip jack@192.168.31.86:/home/jack/Documents

在这里插入图片描述

在centos解压包

unzip Archive.zip 

手动安装

sudo yum install *.rpm

在这里插入图片描述

启动服务

sudo systemctl start docker

查看版本

docker version

验证docker引擎

sudo docker run hello-world

设置开机自启动

systemctl enable docker

docker仓库镜像加速

cd到/etc/docker/目录下 创建daemon.json文件

cd /etc/docker/

在这里插入图片描述

使用vim写入{ "registry-mirrors": ["https://bb6s1gkq.mirror.aliyuncs.com"] }
在这里插入图片描述

制作容器

  • 由于示例作用,本项目将前端 后端 数据库分别部署到不同容器,也就是需要三个容器

前端nginx容器制作

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

在这里插入图片描述

下载网络工具

sudo yum install net-tools

查看centos所在ip

ifconfig

在这里插入图片描述

将ip地址输入至浏览器

在这里插入图片描述

打包vue前端项目 找到.env.production文件 修改VITE_APP_BASE_API为虚拟机的ip地址加后端留出的端口
在这里插入图片描述

在vue项目目录下打开terminal 输入命名 打包程序

npm run build:prod

打包成功后 html代码会生成在项目根目录下的dist目录
在这里插入图片描述

重新开一个terminal 可以将dist目录打包上传至虚拟机,在此笔者就演示scp命令
在这里插入图片描述

在虚拟机里写好一个配置文件

cd ~
touch vue.conf 
vim vue.conf

编辑vue.conf 输入以下内容
在这里插入图片描述

将此配置文件复制进nginx容器内 具体参考图片内的命令。然后复制dist目录,发现没有app目录,于是进入容器创建此目录

在这里插入图片描述

访问centos ip 发现页面没有更换 于是重启下nginx容器

docker stop nginx 
docker start nginx

网页成功加载,由于后端服务未部署,所以无法进入后台

在这里插入图片描述

后端centos容器制作

docker pull centos:8
dokcer run -itd --name centosv8 centos:8 
docker exec -it centosv8 /bin/bash

对此centos8容器进行yum换源

cd /etc/yum.repos.d/ && mkdir backup && mv *repo backup/
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
sed -i -e "s|mirrors.cloud.aliyuncs.com|mirrors.aliyun.com|g " /etc/yum.repos.d/CentOS-*
sed -i -e "s|releasever|releasever-stream|g" /etc/yum.repos.d/CentOS-*
yum clean all && yum makecache

下载passwd成功 证明换源成功

在这里插入图片描述

设置密码

passwd root

安装一些组件

yum install -y unzip zip vim lrzsz wget initscripts

安装完后输入exit退出容器,基于此容器制作新镜像来进一步配置端口映射以及java运行环境

docker commit centosv8 centosv8l
docker run -itd -p 8989:8989 --name centos centosv8l 
docker exec -it centos /bin/bash
yum install -y java-17

打包后端java项目 打包前需要修改mysql的ip地址为centos的,用户名和密码自定义 但需要和稍后制作的mysql容器保持一致

在这里插入图片描述

点击IDEA右侧的Maven项目管理工具,点击package一键打包

在这里插入图片描述

在项目目录下的targets目录找到jar包 上传至centos
在这里插入图片描述

在这里插入图片描述

复制此jar进centos容器内 并运行

docker cp youolai-boot.jar centos:/root
docker exec -it centos /bin/bash
nohup java -jar youlai-boot.jar

数据库mysql容器制作

docker pull mysql
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=111111 -d mysql

将项目sql脚本上传
在这里插入图片描述
在这里插入图片描述

将脚本复制进mysql容器并运行
在这里插入图片描述

访问网页 成功登入 前 后 数据库已成功连接
在这里插入图片描述

总结

本次示例分别使用nginx,centos,mysql三个容器来运行前端,后端,数据库服务,仅仅是为了让大家熟悉一下java项目的组成以及docker的使用

docker的作用就是可以快速打包容器为镜像,服务部署一次,可以直接拿镜像在其他机器上快速运行,熟悉掌握docker也会大大减少linux开发人员配置环境的繁琐步骤

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值