本文主要讲解如何用docker部署一个springboot项目
第一大部分主要讲了需要的docker环境搭建
第二大部分主要讲了springboot项目搭建、打包、部署到docker上
需要的基本工具:
云服务器一台,centos7以上
基于idea搭建的微服务项目

一、云服务器环境搭建

安装docker

1、安装docker:

yum install docker

2、启动docker并设置为启动:

systemctl  start docker.service
systemctl  enable docker.service

3、使用docker中国加速器

vi  /etc/docker/daemon.json
 
#打开文件后添加:
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true
}

4、重启docker

systemctl restart docker

5、使用命令docker version可查看已经安装完成及安装的版本号在这里插入图片描述

安装jdk

1、

yum -y install java-1.8.0-openjdk*

安装完成
在这里插入图片描述
2、配置环境变量
使用vi命令打开 /etc/profile

vim /etc/profile 

添加两行数据

export JAVA_HOME=/usr/lib/jvm/java-1.8.0
export PATH=$PATH:$JAVA_HOME/bin

我把他放在最底下了
在这里插入图片描述
3、修改之后使其生效

source /etc/profile

4、查看安装情况

java -version

在这里插入图片描述

安装maven

1、下载

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

2、 解压

tar vxf apache-maven-3.5.4-bin.tar.gz

3.移动

mv apache-maven-3.5.4 /usr/local/maven3

4、配置环境变量
vi打开/etc/profile,然后在最底下添加下面的配置

vi /etc/profile
MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

5、执行命令,使配置生效

source /etc/profile

6、查看安装情况及版本号

mvn -version

在这里插入图片描述
环境构建完成

二、创建一个简单的springboot项目并打包部署到docker上

创建springboot项目:
创建一个简单的springboot项目
在这里插入图片描述
1、pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>lq.study</groupId>
    <artifactId>docker</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>docker</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <docker.image.prefix>springboot</docker.image.prefix>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- Docker maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

2、controller

@RestController
public class DockerTest {

    @RequestMapping("/print")
    public String printUserInfo(){
        return "Hello Docker!";
    }

}

3、配置文件

server.port=7070
server.servlet.context-path=/test

4、创建一个dockerfile文件
文件内容如下

#获取base image
FROM adoptopenjdk/openjdk8:latest
#类似于执行 linux指令
RUN mkdir /opt/app
#类似于linux copy指令
COPY docker-0.0.1-SNAPSHOT.jar /opt/app/
#对外端口
EXPOSE 7070
#执行命令 java -jar /opt/app/demo-docker.jar
CMD ["java", "-jar", "/opt/app/docker-0.0.1-SNAPSHOT.jar"]

5、打包项目
在这里插入图片描述
在这里插入图片描述
启动项目并且,测试项目是否正常
在这里插入图片描述
6、打包完成后复制jar包和dockerfile文件到linux指定目录,我的目录是如下
在这里插入图片描述
7、创建镜像
sudo docker build -t docker.demo .
创建成功
在这里插入图片描述
8、查看当前镜像

docker images 

在这里插入图片描述
9、生成容器
docker run -it -p 7070:7070 docker-demo
在这里插入图片描述
10、浏览器访问公网ip及对应的接口,39.96.40.x为你自己云服务器的Ip
http://39.96.40.x:7070/test/print/
在这里插入图片描述

参考:
环境搭建;https://blog.csdn.net/yan88888888888888888/article/details/83022878
项目部署:https://www.jianshu.com/p/d998dc9d9685

Logo

更多推荐