Docker手动构建镜像

一、简介

在实际项目中,我们通常采用Jenkins自动化构建来构建Docker镜像,但是公司有时候Jenkins会挂掉或者Jenkins空间不足会导致无法构建镜像,这个时候如果项目地需要升级镜像版本就只能干等,构建镜像除了使用Jenkins来构建,也可以自己手动构建,然后自己线下打包镜像压缩文件推送到项目地解压缩即可,本文我们将总结如何手动构建一个后端的镜像。

需要准备的东西有:

  • 后端服务通过maven打包的jar包;
  • Dockerfile文件;

二、构建镜像

(1)、准备后端jar包

我们都知道,实际上是通过java -jar xxxx.jar来运行服务的,所以我们首先需要使用maven build打包一个最新的后端服务jar.

【a】更新代码

使用git pull拉取最新代码,保证镜像文件使用的代码是当前Git仓库最新的。

【b】执行mvn clean命令将根目录下生成的target文件移除

【c】执行mvn install命令打包jar

 

打包成功后户提示“BUILD SUCCESS”,然后在项目根目录下的target目录下可以看到刚刚打包成功的jar包。

 

(2)、编写Dockerfile

构建镜像肯定少不了Dockerfile,如下:

#基础镜像
FROM 192.168.2.78:5000/library/centos-jdk:1.7.79

#作者
MAINTAINER weixiaohuai [email protected]
#添加文件
#这里的jar包名称就换成上面打包成功的target/xxx.jar即可
ADD XXXXXX-0.0.1-SNAPSHOT.jar /usr/local/XXXXXX-0.0.1-SNAPSHOT.jar

#开放端口
EXPOSE 6222

#启动时执行的命令
CMD ["/bin/bash"]

#启动时执行的命令
ENTRYPOINT ["java","-jar","-Xms2048m", "-Xmx2048m", "-XX:PermSize=256M", "-XX:MaxPermSize=256M","/usr/local/XXXXXX-0.0.1-SNAPSHOT.jar"]

注意:Dockerfile中的XXXXXX-0.0.1-SNAPSHOT.jar需要替换成项目中打包成功的jar名称。

(3)、构建镜像

【a】将刚刚的jar包和Dockerfile传到安装有Dockerfile的服务器中

 

【b】执行docker build构建镜像

docker build -t 192.168.35.105:5000/develop/XXX-svc:20200331100100 .
  • -t: 指定构建镜像的名称
  • .:指定Dockerfile文件目录

注意修改XXX为具体的服务名称。

 如上图可见,已经成功构建镜像。

【c】查看成功构建的镜像

docker images | grep 20200331100700

 下面我们就可以使用docker run运行我们刚刚构建的镜像了,以上就是本地手动构建后端服务镜像文件的详细步骤,在Jenkins出现故障又急需镜像的时候就可以采用手动构建的方式,如果需要推送到项目地的话,可以借助docker save将刚刚构建成功的镜像文件压缩成tar,然后传输到项目地再使用docker load加载tar,这样镜像就推送到项目地了。

发布了250 篇原创文章 · 获赞 112 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/Weixiaohuai/article/details/105216837