guns项目(springboot+maven)打包Docker镜像并自动部署至Docker服务器运行项目

1. 在windows 10 环境下安装docker

1.1. 下载地址:

https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows

备注:该软件一直进行下一步安装即可,需要开启Hyper-v,不然运行不起来

1.2. 软件配置

软件安装完成后,在任务栏会出现docker图标,指向图标右击选择 》 settings 》 General 》 勾选(Expose daemon on tcp://localhost:2375 without TLS),开启该功能后,docker才能进行远程连接。
勾选如图所示选项

2. 程序打包配置【以eclipse为例】

2.1. 修改pom.xml文件

<!--使用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>
		<!--指定生成的镜像名 -->
		<imageName>${project.artifactId}</imageName>
		<!--指定标签 -->
		<imageTags>
			<imageTag>latest</imageTag>
		</imageTags>
		<!-- 指定 Dockerfile 路径 -->
		<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
		<!--指定远程 docker api地址 -->
		<dockerHost>http://localhost:2375</dockerHost>
		<!-- 这里是复制 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>

备注:

  1. 以上docker-maven-plugin版本必须设置为:0.4.13。1.0.0版本会报错:no String-argument constructor/factory method to deserialize from String val
  2. dockerHost配置可以更改为任意远程docker地址,前提是必须开启2375端口并配置docker远程访问

2.2. 创建Dockerfile文件

在项目src/main下创建docker文件夹,并在该文件夹内创建Dockerfile文件,填入如下配置:

FROM java:8
# 挂载临时目录
VOLUME /tmp
# 添加指定jar包到容器
ADD your-package.jar app.jar
# 容器向外暴露的端口号
EXPOSE 80
# 容器运行程序的命令
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

备注: 本项目使用的是jdk8,your-package 为maven打包生成的程序包名(jar)详见pom.xml内artifactId配置(该名称字母必须小写,大写docker会报错提示找不到相应的jar),其他Dockerfile配置项详见:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

2.3. 使用maven打包项目

  1. 普通springboot 项目直接 Run As > Maven install 即可。
  2. guns项目需要使用guns提供的打包方式: Run As > Maven build… 选项,在Goals 选项中填写:clean package -Dmaven.test.skip=true 然后点击run打包运行。
    在这里插入图片描述

2.4. 打包结果

当页面控制台出现Build success时说明打包部署成功,截图如下:
在这里插入图片描述

2.5. 查看docker中的镜像

进入cmd使用命令 docker image ls 或 docker images 查看本地镜像资源包,结果如下:
在这里插入图片描述
上图所示,打包的docker镜像已经自动上传至docker服务器。

2.6. 在容器中运行docker镜像及其他操作

运行命令:docker run -d -it -p 8080:80 --name xxx 镜像名/IMAGE ID
查看运行状态:docker ps -a
查看日志: docker logs -f -t --tail 容器名/容器ID
停止/启动/重启容器:docker stop / start / restart 容器ID/容器名称
删除容器:docker rm 容器ID/容器名称
删除镜像:docker rmi 镜像名/IMAGE ID

备注: 运行命令中 -d 为在后台运行 -it 为立即运行容器 -p 为 端口映射,格式为:宿主机端口:容器端口 --name 为指定容器名

2.利用Docker Client远程工具进行docker操作

2.1 下载安装Dcoker远程链接工具

下载地址:Docker Client v1.0 远程链接工具 for windows x64
安装方法:按照默认方式进行下一步安装即可。
程序界面:
软件首页
该工具支持普通直连和ssl加密方式链接docker
在这里插入图片描述
TCP
SSL证书链接

镜像列表。在该页面可以安装、运行、删除镜像。镜像列表页面
容器列表页面:在该页面可以对容器进行启动、停止、删除、查看日志等操作。
容器列表页面

3.基于Eclipse 安装docker插件

3.1. 插件安装

在Eclipse 中依次执行 Help > Install New Software… > add ,填写如下信息:
地址:https://download.eclipse.org/linuxtools/updates-docker-nightly/
在这里插入图片描述
在这里插入图片描述
按照提示进行下一步,直到安装完成。

3.2. 在Eclipse中打开Docker Explorer 视图

在视图中新建连接,输入docker远程地址,本文docker安装在本地,故使用127.0.0.1:2375
在这里插入图片描述
在这里插入图片描述
在该视图内可以查看/编辑/运行docker镜像。

备注:使用该插件前,docker服务器必须开启远程连接和2375端口。

特别声明:本文为原创作品,转载请注明出处来源!

发布了9 篇原创文章 · 获赞 16 · 访问量 2761

猜你喜欢

转载自blog.csdn.net/qq_32201423/article/details/104037573