从申请服务器到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:在构建时命名的名字

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

相关推荐
小Tomkk3 小时前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
赌博羊3 小时前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
linux·运维·gnu
getapi3 小时前
Ubuntu 22.04 服务器的系统架构是否为 amd64 x86_64
linux·服务器·ubuntu
消失的旧时光-19434 小时前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑4 小时前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
小天源4 小时前
Cacti在Debian/Ubuntu中安装及其使用
运维·ubuntu·debian·cacti
Trouvaille ~4 小时前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
芷栀夏4 小时前
深度解析 CANN 异构计算架构:基于 ACL API 的算子调用实战
运维·人工智能·开源·cann
全栈工程师修炼指南4 小时前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
威迪斯特5 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver