使用docker部署项目

一、docker私有镜像仓库

1、docker私有镜像仓库

库(Repository)是集中存放镜像的地方,又分为公共镜像和私有仓库。

当我们执行docker pull xxx的时候,它实际上是从registry.docker.com这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目上传到公共仓库进行管理,所以为了更多管理镜像,Docker允许我们搭建本地私有仓库。

私有仓库最常用的就是registry、Harbor两种,那接下来详细介绍如何搭建私有仓库。Docker 官方提供了一个搭建私有仓库的镜像registry,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

registry服务默认将上传的镜像保存在容器的/var/lib/registry,使用-v参数将容器的/var/lib/registry目录映射到本地/opt/registry目录。即可实现将镜像保存到宿主机/opt/registry目录。

2、使用docker部署私有镜像仓库registry

java 复制代码
docker pull registry

3、启动私有镜像仓库

java 复制代码
docker run -d -p 5000:5000 --name registry registry

二、项目打包

1、maven添加打包插件

java 复制代码
<build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2、maven视图:

3、功能说明:

build-info:生成项目的构建信息文件 build-info.properties

repackage:这个是默认 goal,在 mvn package 执行之后,这个命令再次打包生成可执行的 jar,同时将 mvn package 生成的 jar 重命名为 *.origin

run:这个可以用来运行 Spring Boot 应用

start:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理

stop:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理

4、打包项目

执行打包插件的run方法,打包项目

打包生成的jar包在项目文件的target文件夹里,我们需要将打包完成的jar包copy到linux服务器里面

三、项目部署

1、编写Dockerfile文件文件

java 复制代码
//在jar包同级目录下添加Dockerfile文件
vim Dockerfile

//将下列配置拷贝进Dockerfile
FROM java:8u20
MAINTAINER docker_maven docker_maven@email.com
WORKDIR /ROOT
ADD javadome-0.0.1-SNAPSHOT.jar javadome.jar
CMD ["java", "-version"]
ENTRYPOINT ["java", "-Dfile.encoding=utf-8","-jar", "javadome.jar"]
EXPOSE 63075

FORM java:8u20是指编译的jdk,如果使用的是openjdk也可以改成openjdk:17

javadome-0.0.1-SNAPSHOT.jar 是同级目录下的jar包的全名

javadome.jar 对jar包起的别名

EXPOSE 63075 指打包程序的端口号,一般与项目指定的端口号一致

2、创建docker镜像

java 复制代码
docker build -t javadome:1.0 .

javadome:1.0 指打包项目的镜像名及版本号(可以自己指定),后面有个 . 不能掉

3、查看镜像是否已存在

java 复制代码
docker images

4、创建docker容器(部署)

java 复制代码
docker run --name javadome -p 63075:63075 -idt javadome:1.0

5、查看容器是否创建成功

java 复制代码
dokcer ps

四、测试

修改前端项目的请求地址为服务器地址,放行服务器相关端口,测试功能是否可以实现

相关推荐
考虑考虑23 分钟前
Jpa使用union all
java·spring boot·后端
用户3721574261351 小时前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊2 小时前
Java学习第22天 - 云原生与容器化
java
JuiceFS2 小时前
从 MLPerf Storage v2.0 看 AI 训练中的存储性能与扩展能力
运维·后端
渣哥4 小时前
原来 Java 里线程安全集合有这么多种
java
间彧4 小时前
Spring Boot集成Spring Security完整指南
java
间彧4 小时前
Spring Secutiy基本原理及工作流程
java
Java水解5 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆7 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学8 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端