javaWeb后端开发之Linux项目部署3和Docker部署1

发布时间:2026/5/22 16:17:56

javaWeb后端开发之Linux项目部署3和Docker部署1 1.前端项目部署- 将nginx的安装目录的html中的静态资源文件先删除掉- 将静态资源文件全部上传到nginx安装目录下的 html 目录中- 修改资料中提供的nginx.conf配置文件将其上传到nginx安装目录下的 conf 目录中- 重新加载nginx服务的配置文件sbin/nginx -s reload- 再次访问nginx (可能会存在浏览器缓存, 可以按CtrlF5, 强制刷新清理缓存)nignx服务常见操作指令启动sbin/nginx重载sbin/nginx -s reload停止sbin/nginx -s stop2.后端项目部署环境准备再准备一份文件application.yml将里面的配置的mysql的ip地址及相关配置信息修改一下配置Linux上安装的MySQL的信息改造完毕之后可以在本地的idea中先启动当前项目然后访问一下看看工程是否正常访问打包部署- 执行package指令进行打包操作将当前的springboot项目打成一个jar包跳过测试- 在Linux服务器上创建一个目录将jar包上传到服务器mkdir -p /usr/local/app- 通过java命令启动项目/usr/local/appcd /usr/local/appjava -jar tlias-web-management-0.0.1-SNAPSHOT.jar- 项目启动之后就可以打开浏览器进行测试阿里云OSS密钥配置由于在开发的时候将访问阿里云OSS的AccessKeyIdAccessKeySecret都配置在了系统的环境变量中了。那现在项目部署到了Linux服务器中调用阿里云OSS进行文件上传时程序就会获取Linux系统中的环境变量。所以需要将AccessKeyIdAccessKeySecret配置为Linux系统的环境变量- 查看Windows系统之前配置的环境变量echo %OSS_ACCESS_KEY_ID%echo %OSS_ACCESS_KEY_SECRET%将上述自己的 AccessKeyId 与 AccessKeySecret 复制出来然后在linux系统中配置环境变量- 执行如下命令echo export OSS_ACCESS_KEY_ID自己阿里云OSS账号的OSS_ACCESS_KEY_ID /etc/profileecho export OSS_ACCESS_KEY_SECRET自己的阿里云OSS账号的OSS_ACCESS_KEY_SECRET /etc/profilesource /etc/profile- 执行完毕后将finalShell的窗口关闭掉重新打开一个新窗口让环境变量生效重新运行项目测试后台运行- 后台运行程序nohup java -jar tlias-web-management-0.0.1-SNAPSHOT.jar tlias.log 服务运行之后 所有的日志信息都会输出到 tlias.log 文件中- 停止服务nohup命令说明:用于不挂断地运行指定命令退出终端不会影响程序的运行语法nohup command [ args … ] []参数说明command要执行的命令args一些参数可以指定输出文件让命令在后台运行Docker项目部署1.快速入门部署MySQL使用Docker安装仅仅需要一步即可在命令行输入下面的命令MySQL安装完毕通过任意客户端工具即可连接到MySQL这里下载的不是安装包而是镜像镜像中不仅包含了MySQL本身还包含了其运行所需要的环境、配置、系统级函数库因此它在运行时就有自己独立的环境就可以跨系统运行也不需要手动再次配置环境了这套独立运行的隔离环境我们称为容器Docker安装软件的过程就是自动搜索下载镜像然后创建并运行容器的过程总结Docker本身包含一个后台服务我们可以利用Docker命令告诉Docker服务帮助我们快速部署指定的应用。Docker服务部署应用时首先要去搜索并下载应用对应的镜像然后根据镜像创建并允许容器应用就部署完成了命令解读docker run -d创建并运行一个容器-d则是让容器以后台进程运行--name mysql: 给容器起个名字叫mysql你可以叫别的-p 3307:3306: 设置端口映射- eTZAsia/Shanghai: 配置容器内进程运行时的一些参数mysql8 :设置镜像名称Docker会根据这个名字搜索并下载镜像镜像的名称不是随意的而是要到DockerRegistry中寻找镜像运行时的配置也不是随意的要参考镜像的帮助文档这些在DockerHub网站或者软件的官方网站中都能找到2.Docker基础常见命令注默认情况下每次重启虚拟机我们都需要手动启动Docker和Docker中的容器。通过命令可以实现开机自启systemctl enable docker Docker开机自启docker update --restartalways [容器名/容器id] Docker容器开机自启演示以Nginx为例3.数据卷程序运行产生的数据、程序运行依赖的配置都应该与容器解耦数据卷volume是一个虚拟目录是容器内目录与宿主机目录之间映射的桥梁。以Nginx为例我们知道Nginx中有两个关键的目录html放置一些静态资源conf放置配置文件要让Nginx代理静态资源最好是放到html目录要修改Nginx的配置最好是找到conf下的nginx.conf文件创建了两个数据卷conf、htmlNginx容器内部的conf目录和html目录分别与两个数据卷关联而数据卷conf和html分别指向了宿主机的/var/lib/docker/volumes/conf/_data目录和/var/lib/docker/volumes/html/_data目录所以容器内的conf和html目录就 与宿主机的conf和html目录关联起来我们称为挂载命令注容器与数据卷的挂载要在创建容器时配置对于创建好的容器是不能设置数据卷的。而且创建容器的过程中数据卷会自动创建演示nginx的html目录挂载演示MySQL的匿名数据卷第一是.Config.Volumes部分发现这个容器声明了一个本地目录需要挂载数据卷但是数据卷未定义。这就是匿名卷.Mounts部分Name数据卷名称。由于定义容器未设置容器名这里的就是匿名卷自动生成的名字一串hash值。Source宿主机目录Destination : 容器内的目录

相关新闻