Docker学习--本地springboot项目使用Maven插件构建Docker镜像并自动上传到linux服务器docker私有仓库

2 篇文章 0 订阅
2 篇文章 0 订阅

本文主要介绍如何使用Maven插件将SpringBoot应用打包为Docker镜像,并上传到私有镜像仓库Docker Registry的过程。


Docker安装及常用命令参考: https://blog.csdn.net/sinat_42327690/article/details/93160233

1.搭建私有仓库

	docker run -d -p 5000:5000 --restart=always --name registry2 registry:2

如果遇到镜像下载不下来的情况,需要修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值,然后重启docker服务:

{
 "registry-mirrors": ["https://registry.docker-cn.com"]
}

2.Docker开启远程API(配置远程访问)

修改配置文件/usr/lib/systemd/system/docker.service,配置远程访问
用vim编辑器修改docker.service文件

  vi /usr/lib/systemd/system/docker.service

需要修改的部分:

  ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改后的部分:

  ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

docker重新读取配置文件,重新启动docker服务

  systemctl daemon-reload
  systemctl restart docker

查看是否开起docker守护线程监听

[root@localhost ~]# ps -ef|grep docker
root       4022      1  0 14:46 ?        00:00:26 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

3.maven中添加插件

<plugins>
			<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>0.4.13</version>
				<configuration>
					<dockerHost>http://192.168.31.203:2375</dockerHost>
					<imageName>192.168.31.203:5000/${project.build.finalName}:${project.version}</imageName>
					<baseImage>java</baseImage>
					<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
					<exposes>1111</exposes>
					<resources>
						<resource>
							<targetPath>/</targetPath>
							<directory>${project.build.directory}</directory>
							<include>${project.build.finalName}.jar</include>
						</resource>
					</resources>
					<forceTags> true</forceTags>
				</configuration>
			</plugin>
		</plugins>

相关配置说明:

executions.execution.phase:此处配置了在maven打包应用时构建docker镜像;

imageName:用于指定镜像名称,192.168.31.203:5000是仓库名称,{project.build.finalName}为镜像名称,${project.version}为镜像版本号;

dockerHost:打包后上传到的docker服务器地址;

baseImage:该应用所依赖的基础镜像,此处为java;

entryPoint:docker容器启动时执行的命令;

resources.resource.targetPath:将打包后的资源文件复制到该目录;

resources.resource.directory:需要复制的文件所在目录,maven打包的应用jar包保存在target目录下面;

resources.resource.include:需要复制的文件,打包好的应用jar包。
注意:
1.必须配置dockerHost标签
(除非配置系统环境变量DOCKER_HOST=tcp://192.168.5.129:2375)否则默认访问的是127.0.0.1:2375
2.imageName标签中不能以http或者其他网络协议开头,如果设置maven打包时会报错!
3…使用下面配置后imageName标签中可以以http开头
让Docker支持http上传镜像(配置后重启docker)

  echo '{ "insecure-registries":["192.168.3.101:5000"] }' >/etc/docker/daemon.json

3.端口2375是docker守护线程的端口,编译时必须要获取该docker一些版本信息

4.端口5000是registry私有仓库的访问端口

4.构建docker并推送到私有仓库

执行以下命令

  mvn clean package docker:buid

或者双击package
在这里插入图片描述
构建成功后查看docker中的镜像

[root@localhost ~]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
127.0.0.1:5000/aisino-admin   latest              af8650dc2d22        28 hours ago        800MB
registry                      2                   f32a97de94e1        3 months ago        25.8MB

最后新建并启动容器

  docker run -p 8080:8080 -d 127.0.0.1:5000/aisino-admin:latest

本文参考:https://my.oschina.net/1181360/blog/1933656

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值