当前位置:   article > 正文

从申请服务器到Docker部署Java项目至最后运行完结_java服务docker发版

java服务docker发版

目录

1.申请服务器篇

2.配置安全组篇

3.Docker安装篇

4.代码编写打包篇

目录结构

Maven

Controller

DockerFile

开始打包

5.所需文件上传及镜像构建篇

上传准备

上传jar包及DockerFile文件

指令构建

验证

6.镜像启动服务验证篇

启动镜像

使用云服务器地址进行接口访问

2023/11/16更新

1.安装mysql容器

2.安装完成之后查看

3.启动容器

4.运行mysql容器

5.开启远程访问权限

6.重新打包

7.总结

8.补充



1.申请服务器篇

www.qingcloud.com

创建新的

参数选择

点击创建主机

2.配置安全组篇

说白了:让你的端口让服务器通过

3.Docker安装篇

本机通过FinalShell连接远程服务器

依次执行下面命令

  1. 1.初始化
  2. yum install -y yum-utils
  3. 2.安装docker基础环境
  4. yum-config-manager \
  5. --add-repo \
  6. https://download.docker.com/linux/centos/docker-ce.repo
  7. 3. 安装docker脚手架
  8. yum install -y docker-ce docker-ce-cli containerd.io
  9. 4.默认启动
  10. systemctl enable docker --now
  11. 5.验证安装是否成功
  12. docker ps

安装成功后执行docker ps

当前运行的镜像:会出现以下界面,证明安装成功

镜像加速,进入下面的网址复制粘贴运行
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

4.代码编写打包篇

新建一个springboot应用,使用idea随便写个请求接口

目录结构

Maven

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.projectlombok</groupId>
  8. <artifactId>lombok</artifactId>
  9. <optional>true</optional>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-test</artifactId>
  14. <scope>test</scope>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-starter-data-redis</artifactId>
  19. </dependency>
  20. <dependency>
  21. <groupId>redis.clients</groupId>
  22. <artifactId>jedis</artifactId>
  23. <version>2.7.3</version>
  24. </dependency>
  25. </dependencies>

Controller

  1. package com.zsp.docker.controller;
  2. import org.springframework.data.redis.core.RedisTemplate;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. import javax.annotation.Resource;
  6. @RestController
  7. public class CounterController {
  8. @Resource
  9. private RedisTemplate<String, String> redisTemplate;
  10. @GetMapping("hello")
  11. public String count() {
  12. Long in = redisTemplate.opsForValue().increment("count");
  13. return "有{" + in + "}人访问了这个页面";
  14. }
  15. }

DockerFile

  1. #基础环境
  2. FROM openjdk:8-jdk-slim
  3. #作者
  4. LABEL maintainer=zhangshipeng
  5. #将target下的以jar为后缀的文件复制给app.jar
  6. COPY target/*.jar /app.jar
  7. #执行java -jar 命令
  8. ENTRYPOINT ["java","-jar","app.jar"]

开始打包

5.所需文件上传及镜像构建篇

上传准备

新建一个文件夹,内容为DockerFile和target,target里面只放打包后的jar包

上传jar包及DockerFile文件

通过FinalShell进行文件上传,我在云服务器上新建了名为dockerfile的文件夹,将这两个内容放进了这里

很重要这一步,因为我们编写的dockerFile文件中是从target文件夹中把jar包取出来的,所以要保持一致。

指令构建

进入该文件夹,执行构建指令   docker build -t java-docker:v1.0 .

构建指令最后的点不要忘记

docker build 指令是前置, -t 指定构建的名字

验证

构建完,docker images,查看是否成功

6.镜像启动服务验证篇

启动镜像

docker run -d -p 8080:8080 java-docker:v1.0

java-docker:v1.0:在构建时命名的名字

使用云服务器地址进行接口访问


2023/11/16更新

这次增加后台数据库访问及docker安装mysql,远程连接部署等

1.安装mysql容器

在命令行输入 docker pull mysql:8

[root@localhost ~]# docker pull mysql:8

2.安装完成之后查看

docker images

3.启动容器

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=zsp123456 --name mysql --restart=always -v /root/data:/var/lib/mysql -d mysql:8.0

-p设置端口映射

-e设置密码

-name设置名字

restart=always 设置容器自启动

-v 数据卷挂载  -v (参数一):(参数二) 

持久化数据到宿主机,容器存储数据的路径在哪?/var/lib/mysql

参数一:把数据存到哪里

参数二:要存储的数据在哪里

运行之后会自动创建一个名为data的目录。

4.运行mysql容器

docker ps 查看mysql运行的id,id为2d81960dc52a 

运行以下命令

docker exec -it 0c55686eeb36 bash

mysql -u root -p 

Enter password: root

5.开启远程访问权限

mysql8.0需要修改东西,依次执行下面步骤

1.给root用户分配远程访问权限

mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;

2.更换密码加密方式

mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'zsp123456' PASSWORD EXPIRE NEVER;

3.更新用户密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'zsp123456';

4.刷新权限

FLUSH PRIVILEGES;

6.重新打包

1.修改原来项目的配置文件,mysql地址改为服务器地址

2.账户密码都是服务器中mysql容器的账户密码

3.重新执行package,上传jar包和DockerFile文件进行构建

4.运行构建好的容器

5.postman测试接口

7.总结

启动mysql,开启端口映射(3306)指定用户名密码后台运行,在docker重启之后自动运行,设置数据卷,持久化数据到宿主机。

8.补充

常用容器操作命令:

查看运行的容器 docker ps

关闭运行的容器  docker stop [CONTAINER ID]

常用镜像操作命令:

查看镜像 docker images

启动镜像 docker run 后面补充其他条件

删除镜像 docker rmi REPOSITORY:TAG 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/411872?site
推荐阅读
相关标签
  

闽ICP备14008679号