【Docker】docker镜像构建

jmeter使用分布式方法进行压测时,有时会需要较多数量的slave,估需要将压力机进行容器化,并且使其是无状态的,支持快速横向扩容。

一、编写Dockerfile

Dockerfile的语法用法可参考:https://www.runoob.com/docker/docker-dockerfile.html

主要的注意事项有:

1、Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。可用&&符号连接命令,减少层数。

FROM openjdk:8-jdk-slim
RUN apt-get clean
RUN apt-get update
RUN apt-get -qy install wget
以上执行会创建 3 层镜像。可简化为以下格式:
FROM openjdk:8-jdk-slim
RUN apt-get clean  
  && apt-get update
  && apt-get -qy install wget
以上执行只会创建 1 层镜像

2、可以将本地的镜像作为基础镜像

如本地有REPOSITORY为qa/jmeter,TAG为content的镜像,可使用FROM引入。

FROM qa/jmeter:content

我主要是使用该方式为已有的镜像添加后置命令执行,在容器启动之后,执行命令,启动服务。

二、构建镜像

docker的命令可参考:https://www.runoob.com/docker/docker-image-usage.html

主要的注意事项有:

1、构建时可能因为网络问题导致失败,这时候建议创建个基础镜像,使用该镜像创建容器,在容器中将环境配置好后,将容器commit到镜像中。

2、构建时使用的名字和tag是本地已存在的,将会对已有的镜像进行更新。

三、上传镜像

使用docker login harborUrl,登录harbor。

docker login harbor.xxx.com
harbor.xxx.com为harbor仓库地址

使用docker push imageId 上传镜像。

docker push dsjg234kad harbor.xxx.com/qa/jmeter:content
harbor.xxx.com/qa/jmeter:content 为上传路径,镜像名字与TAG用:分隔开

  

原文地址:https://www.cnblogs.com/6970-9192/p/13684880.html