docker-maven-plugin使用SSL证书自动打包部署镜像到Docker服务器

1. 软件环境

springboot 2.2.1稳定版
jdk 1.8
maven 3.6.2
docker-maven-plugin 0.4.13

2. Docker SSL证书配置

  • Docker具体设置请移步:Docker开启SSL证书加密远程连接
  • 将以上步骤中下载的ca.pem、cert.pem、key.pem三个文件下载至本地目录中备用
  • 在项目src/main下创建pem目录,将下载的三个pem文件放至该目录下。

3. Docker File 文件配置

  • 在项目src/main下创建docker目录
  • 在docker目录下创建Dockerfile文件,具体内容如下:
# 指定jdk环境版本,基于java8创建镜像
FROM java:8
# 挂载临时目录
VOLUME /tmp
# 添加指定jar包到容器《此处为项目打包产生的jar包全名》
ADD your-package.jar app.jar
# 容器向外暴露的端口号《指该项目运行所占用的的端口号》
EXPOSE 80
# 容器运行程序的命令
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

4. pom.xml 文件配置

本文使用docker-maven-plugin 0.4.13版本,可根据自己需求选择任意版本使用。

在标签中添加以下配置:

<!--使用docker-maven-plugin插件 -->
<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>docker-maven-plugin</artifactId>
	<version>0.4.13</version>
	<!--将插件绑定在某个phase执行 -->
	<executions>
		<execution>
			<id>build-image</id>
			<!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build -->
			<phase>package</phase>
			<goals>
				<goal>build</goal>
			</goals>
		</execution>
	</executions>
	<configuration>
		<forceTags>true</forceTags>
		<!--指定生成的镜像名 该处修改为自己想要生成的镜像名称-->
		<imageName>myImages</imageName>
		<!--指定标签 -->
		<imageTags>
			<imageTag>latest</imageTag>
		</imageTags>
		<!-- 指定 Dockerfile 路径 -->
		<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
		<!--指定远程 docker api地址 -->
		<dockerHost>https://localhost:2375</dockerHost>
		<!--指定pem证书文件路径地址 -->
		<dockerCertPath>${project.basedir}/src/main/pem</dockerCertPath>
		<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
		<resources>
			<resource>
				<targetPath>/</targetPath>
				<!--jar 包所在的路径  此处配置的 即对应 target 目录 -->
				<directory>${project.build.directory}</directory>
				<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
				<include>${project.build.finalName}.jar</include>
			</resource>
		</resources>
	</configuration>
</plugin>

5. 运行打包命令

选中项目右键 Run As > Maven install 即可,打包成功时出现以下内容:
docker-maven-plugin使用SSL证书自动打包部署镜像到Docker服务器_第1张图片

6. 测试镜像

  • 进入docker所在服务器shell命令行,输入docker images或docker image ls命令查看安装部署的镜像列表。
  • 使用docker run ****命令启动镜像。
  • 使用docker ps -a 命令查看生成的容器信息

如需docker远程连接工具请移步:Docker Client v1.2.1,该程序可以免登录服务器进行docker操作。

你可能感兴趣的:(docker)