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

目录

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

创建新的

参数选择

从申请服务器到Docker部署Java项目至最后运行完结_第1张图片

从申请服务器到Docker部署Java项目至最后运行完结_第2张图片

从申请服务器到Docker部署Java项目至最后运行完结_第3张图片

从申请服务器到Docker部署Java项目至最后运行完结_第4张图片

点击创建主机

从申请服务器到Docker部署Java项目至最后运行完结_第5张图片

2.配置安全组篇

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

从申请服务器到Docker部署Java项目至最后运行完结_第6张图片

从申请服务器到Docker部署Java项目至最后运行完结_第7张图片

从申请服务器到Docker部署Java项目至最后运行完结_第8张图片

3.Docker安装篇

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

从申请服务器到Docker部署Java项目至最后运行完结_第9张图片

依次执行下面命令

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

安装成功后执行docker ps

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

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

4.代码编写打包篇

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

目录结构

从申请服务器到Docker部署Java项目至最后运行完结_第10张图片

Maven


        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
            redis.clients
            jedis
            2.7.3
        
    

Controller

package com.zsp.docker.controller;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
public class CounterController {

    @Resource
    private RedisTemplate redisTemplate;

    @GetMapping("hello")
    public String count() {
        Long in = redisTemplate.opsForValue().increment("count");
        return "有{" + in + "}人访问了这个页面";
    }
}

DockerFile

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

开始打包

从申请服务器到Docker部署Java项目至最后运行完结_第11张图片

从申请服务器到Docker部署Java项目至最后运行完结_第12张图片

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

上传准备

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

从申请服务器到Docker部署Java项目至最后运行完结_第13张图片

从申请服务器到Docker部署Java项目至最后运行完结_第14张图片

上传jar包及DockerFile文件

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

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

从申请服务器到Docker部署Java项目至最后运行完结_第15张图片

指令构建

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

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

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

验证

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

从申请服务器到Docker部署Java项目至最后运行完结_第16张图片

6.镜像启动服务验证篇

启动镜像

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

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

从申请服务器到Docker部署Java项目至最后运行完结_第17张图片

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

从申请服务器到Docker部署Java项目至最后运行完结_第18张图片

从申请服务器到Docker部署Java项目至最后运行完结_第19张图片


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地址改为服务器地址

从申请服务器到Docker部署Java项目至最后运行完结_第20张图片

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

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

4.运行构建好的容器从申请服务器到Docker部署Java项目至最后运行完结_第21张图片

5.postman测试接口

从申请服务器到Docker部署Java项目至最后运行完结_第22张图片

从申请服务器到Docker部署Java项目至最后运行完结_第23张图片

7.总结

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

8.补充

常用容器操作命令:

查看运行的容器 docker ps

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

常用镜像操作命令:

查看镜像 docker images

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

从申请服务器到Docker部署Java项目至最后运行完结_第24张图片

删除镜像 docker rmi REPOSITORY:TAG 

你可能感兴趣的:(服务器,运维)