赞
踩
Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性。
今天,我们将spring boot 项目打包成docker镜像到远程服务器并启动服务的二种方式
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是目前最流行的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、执行打包命令,即可上传到指定仓库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。