使用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

四、测试

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

相关推荐
isolusion6 分钟前
Springboot的创建方式
java·spring boot·后端
Karoku06617 分钟前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes
zjw_rp35 分钟前
Spring-AOP
java·后端·spring·spring-aop
木子Linux37 分钟前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.82443 分钟前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
Oneforlove_twoforjob1 小时前
【Java基础面试题033】Java泛型的作用是什么?
java·开发语言
watermelonoops1 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
TodoCoder1 小时前
【编程思想】CopyOnWrite是如何解决高并发场景中的读写瓶颈?
java·后端·面试
向宇it1 小时前
【从零开始入门unity游戏开发之——C#篇24】C#面向对象继承——万物之父(object)、装箱和拆箱、sealed 密封类
java·开发语言·unity·c#·游戏引擎
小蜗牛慢慢爬行1 小时前
Hibernate、JPA、Spring DATA JPA、Hibernate 代理和架构
java·架构·hibernate