前言

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性。

今天,我们将spring boot 项目打包成docker镜像到远程服务器并启动服务的二种方式

一、方式一(使用Dockerfile文件生成镜像)

1、先把java项目使用maven插件打包成jar包。

2、将.jar包放在有docker环境的服务器中(本文使用本机windows)

3、先将.jar文件放入指定目录,并新建Dockerfile文件

 

Dockerfile文件内容:

# java8运行环境
FROM java:8  
# 作者名称
MAINTAINER Dome

# 切换工作目录
WORKDIR /root/java

# 添加demo-start-1.0.0.jar文件到docker环境内
ADD demo-start-1.0.0.jar /root/java/demo-start-1.0.0.jar
# 暴露端口8080
EXPOSE 8080
# 运行命令
ENTRYPOINT ["java", "-server", "-Xms512m", "-Xmx512m", "-jar", "/root/java/demo-start-1.0.0.jar"]

4、在当前目录下运行指令,构建镜像

docker build -t demo:0.0.1
说明:
-t 参数指定构建成后,镜像的仓库、标签等
demo:0.0.1   demo镜像名称、0.0.1 镜像标签

5、直接运行镜像试试能不能成功

docker run -p 8080:8080 -t demo:0.0.1

如何将Docker镜像上传到Docker hub仓库

1、先创建Docker hub账号,记住username password后面验证时,需要使用到。

2、先登录Docker hub

docker login -u username -p passwork

3、将构建好的镜像打上标签

docker tag demo:0.0.1 username/demo:0.0.1
说明:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
             本地镜像名称:版本号  DockerHub账号名/镜像名称:版本号

 

上传中

 

上传后结果(Docker hub仓库):

 

 注:

如果需要上传到其他镜像创建上面命令的改动如下(以阿里云为例子):

先登录:

docker login -u username [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)

回车后输入密码,则登录成功

打标记:

docker tag demo:0.0.1 [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)/username/demo:0.0.1

上传镜像:

docker push [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)/username/demo:0.0.1

二、方式二(maven插件)

Maven是目前最流行的Java项目管理工具之一,提供了强大的包依赖管理和应用构建功能。

1、修改pom.xml


    <plugins>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <from>
										<!-- 与Dockfile文件的 《FROM java:8》相当 -->
                    <image>java:8</image>
                </from>
                <to>
										<!-- docker.io 镜像仓库域名 -->
										<!-- username 账号名称 -->
										<!-- demo 镜像名称 -->
										<!-- 0.0.2 标签 -->
                    <image>docker.io/username/demo:0.0.2</image>
                    <auth>
												<!-- username 账号名称 -->
												<!-- passwork 账号密码 -->
                        <username>username</username>
                        <password>passwork</password>
                    </auth>
                </to>
                <container>
                    <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
										<!--命令参数 -->
                    <jvmFlags>
                        <jvmFlag>-server</jvmFlag>
                        <jvmFlag>-Xms512m</jvmFlag>
                        <jvmFlag>-Xmx512m</jvmFlag>
                    </jvmFlags>
                    <args>
                        <arg>--spring.profiles.active=prod</arg>
                    </args>
                </container>
            </configuration>
        </plugin>
    </plugins>

2、执行打包命令,即可上传到指定仓库

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐