最近工作中需要使用docker打包成镜像启动,所以有了这篇文章。
差点忘了,你的maven项目中首先要有配置docker打包
以下是maven项目的配置
1.pom文件中加入plugin
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${dockerfile-maven-plugin.version}</version>
<!--
Uncomment the section below to build the docker image with mvn package and and push it with mvn deploy
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
-->
<configuration>
<repository>xxx</repository>
<tag>${project.version}</tag>
<contextDirectory>${project.build.directory}</contextDirectory>
</configuration>
</plugin>
<!-- jhipster-needle-maven-add-plugin -->
</plugins>
2.在src/main/docker下建立dockerfile文件,内容如下:
FROM openjdk:8-jre
RUN groupadd -r work && useradd -r -g work work
USER work
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
JHIPSTER_SLEEP=0 \
JAVA_OPTS=""
CMD echo "The application will start in ${JHIPSTER_SLEEP}s..." && \
sleep ${JHIPSTER_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.war
EXPOSE 8080
ADD *.war app.war
以下是怎么使用docker打包
首先你需要有docker -_-||
1.先了解一下save命令。
docker save [OPTIONS] IMAGE [IMAGE…]
OPTIONS说明:
- -o :输出到的文件。
2.使用maven打包。
mvn package dockerfile:build
这里你将会生成一个项目名:项目版本号,例如:project:0.0.1;
3.使用docker save命令。
#保存到用户目录下
docker save -o ~/xxx.tar project:0.0.1
#或者可以使用这条
docker save project:0.0.1>~/xxx.tar
4.加载tar包:
docker load -i xxx.tar
docker load<xxx.tar
5.使用docker run运行镜像。
①首先使用docker image ls,查看xxx.tar包的镜像名字
②使用docker run -p 8080:8080 imageName 就运行了。