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

目录

1.申请服务器篇

2.配置安全组篇

3.Docker安装篇

4.代码编写打包篇

目录结构

Maven

Controller

DockerFile

开始打包

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

上传准备

上传jar包及DockerFile文件

指令构建

验证

6.镜像启动服务验证篇

启动镜像

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


1.申请服务器篇

www.qingcloud.com

创建新的

参数选择

点击创建主机

2.配置安全组篇

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

3.Docker安装篇

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

依次执行下面命令

复制代码
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随便写个请求接口

目录结构

Maven

XML 复制代码
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.7.3</version>
        </dependency>
    </dependencies>

Controller

java 复制代码
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<String, String> redisTemplate;

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

DockerFile

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

开始打包

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

上传准备

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

上传jar包及DockerFile文件

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

指令构建

进入该文件夹,执行构建指令 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:在构建时命名的名字

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

相关推荐
江南十四行10 分钟前
AI Agent应用类型及Function Calling开发实战(三)
服务器·前端·javascript
炘爚13 分钟前
TCP三次握手和四次挥手
服务器·网络·tcp/ip
zhouwy11317 分钟前
Linux系统管理命令大全
linux·运维
zzzyyy5381 小时前
Linux之缓冲区
linux·运维·服务器
hwscom1 小时前
Linux服务器如何进行安全加固,防止黑客攻击(Windows也适用)
linux·服务器·安全
liann1191 小时前
3.4_Linux 应急响应排查速查命令表
linux·运维·服务器·安全·网络安全·系统安全
孪生质数-1 小时前
Linux高危漏洞通报Copy Fail - CVE-2026-31431
linux·运维·服务器·ubuntu·网络安全·debian·cve-2026-31431
IMPYLH1 小时前
Linux 的 tee 命令
linux·运维·服务器·bash
pc07932 小时前
带网络接口的打印机和USB接口打印机的共享区别
运维·服务器·网络
星河耀银海2 小时前
JAVA 泛型与通配符:从原理到实战应用
android·java·服务器