springboot项目docker部署(2) idea通过maven整合docker一键上传打包镜像

继上一个项目<< springboot项目docker部署(1) 基础:手动打包>>继续整理docker部署

这篇文章常用命令
docker images  
docker ps (正在运行的镜像容器)
docker ps -a  (全部容器)
docker run -d -p XX:XX  --name NAME IMAGENAME (运行镜像容器)
docker container rm name/id (删除某个容器)
docker container prune (Docker 1.13版本以后,开始支持prune命令,快速删除已退出的容器)
docker image prune (删除none的镜像)

还有其他命令 删除并清理rancher节点

1.springboot项目

springboot项目docker部署(2) idea通过maven整合docker一键上传打包镜像_第1张图片

2.加入maven插件,一行命令打包上传

	1.docker需要开启远程访问
	vi /lib/systemd/system/docker.service
	2.找到ExecStart行,修改成下边这样
	ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
	3.重启守护进程
	systemctl daemon-reload
    4.重启docker
    systemctl restart docker

配置maven

      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.0.0</version>
        <dependencies>
          <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
            <version>1.2.0</version>
            <scope>compile</scope>
          </dependency>
        </dependencies>
        <configuration>
          <!-- docker远程地址 需要开通远程访问-->
          <dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
          <!--镜像名称以及版本号-->
          <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
          <imageTags>
          <!--默认标签-->
            <imageTag>latest</imageTag>
          </imageTags>
          <!--依赖的基础镜像-->
          <baseImage>java</baseImage>
          <!-- Dockerfile的位置  如果服务太多暂时不用-->
          <!--<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->

          <!-- 这里是复制 jar 包到 docker 容器指定目录配置-->
          <workdir>/tmp</workdir>
          <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
          <resources>
            <resource>
              <targetPath>/tmp</targetPath>
          <!--用于指定需要复制的根目录 ${project.build.directory}表示为target目录 -->
              <directory>${project.build.directory}</directory>
          <!--用于指定需要复制的文件 ${project.build.directory}.jar表示为打包后jar文件 -->
              <include>${project.build.finalName}.jar</include>
            </resource>
          </resources>
        </configuration>
      </plugin>

在命令行输入
mvn clean package docker:build

springboot项目docker部署(2) idea通过maven整合docker一键上传打包镜像_第2张图片
结果
springboot项目docker部署(2) idea通过maven整合docker一键上传打包镜像_第3张图片

3.在docker里面运行

docker run -d -p XX:XX  --name NAME IMAGENAME (运行镜像容器)

在这里插入图片描述

4.扩展:maven增强,一键点击打包上传

加入以下maven,位置如下下图

 <executions>
          <execution>
            <id>build-image</id>
            <phase>package</phase>
            <goals>
              <goal>build</goal>
              <goal>push</goal>
            </goals>
          </execution>
        </executions>

springboot项目docker部署(2) idea通过maven整合docker一键上传打包镜像_第4张图片

还是需要重新加载容器(重启容器不行)
docker run -d -p XX:XX  --name NAME IMAGENAME (运行镜像容器)
注意:不删之前容器的话,需要更换名字.

备注:我也感觉这样还不是最优化.
解决方案
		1.是idea里面有docker插件可视化操作,自行百度.
		2.上传私有仓库,在用可视化平台刷新容器,下一章可能会写,我也在学习.
重新打包生成新的镜像后,服务器会出现none的镜像.
使用命令 `docker image prune`

你可能感兴趣的:(Java部署)