Docker-推送镜像
1 方式
将本地spring cloud jar包生成镜像推送到远程docker服务或私服
- 方式1:pom.xml 中应用dockerfile-maven-plugin插件
- 方式2 :idea中添加Docker插件
2 dockerfile-maven-plugin
通过插件生成镜像并将镜像push到Docker host和Dockerhub私有账号上。
pom.xml
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.5</version>
<executions>
<execution>
<id>default</id>
<goals>
<!--如果package时不想用docker打包,就注释掉这个goal-->
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<contextDirectory>${project.basedir}</contextDirectory>
<username>aaa</username> <!--dockerhub 我的私服账号-->
<password>bbb</password> <!--dockerhub 我的私服密码-->
<repository>aaa/${project.artifactId}</repository> <!--必须是aaa账号下边的-->
<!--<useMavenSettingsForAuth>true</useMavenSettingsForAuth>-->
<buildArgs>
<!--提供参数向Dockerfile传递-->
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
dockerfile
#基础镜像
FROM java:8
#维护者信息
MAINTAINER liusong
VOLUME /tmp
ARG JAR_FILE
ADD /target/eureka-0902.jar /docker-eureka.jar
ENV JAVA_OPTS=""
#配置容器启动时的执行命令 https://www.jianshu.com/p/f0a0f6a43907
ENTRYPOINT ["java","-jar","/docker-eureka.jar"]
- 镜像推送到docker host端 需要本机配置环境变量 DOCKER_HOST
- dockerfile-maven-plugin <=1.4.6 needs Maven 3.X, and for other case Maven >= 3.5.2.
- mvn package时,你会得到一个Docker镜像。 当你键入mvn deploy时,你的镜像被push
- 上面DockerFile中由于用了java:8的layer层,本身它就有600多M,所以打出来的镜像肯定是超600M的,
3 idea docker插件
通过idea docker将镜像发布到docker host,并启动容器
镜像推送到docker host端 需要本机配置环境变量 DOCKER_HOST