dockerfile变量 dockerfile参数_压力测试

 以上是用dockerfile来构建的nginx镜像示例。

一、构建stress压力测试软件镜像

##(1) 以下是Dockerfile内容(ENTRYPOINT是运行的环境):

FROM centos

RUN yum -y install wget epel-release

RUN yum install -y stress

ENTRYPOINT ["stress"]

##(2)构建命令(注意最后有一个点号):

docker build –t=”docker_image_name”  stress .

##(3)运行容器(压力测试):

docker run -it --rm mystress:v1 --name mystress -h mystress -c 512 --cpu 1   

##rm参数是停止后删除容器,-c 512 --cpu 1,-c为线程,-m为限制内存。

docker run -d --rm --name mystress2 -h mystress2 mystress:v1 --cpu 512  ## -d:后台运行,cpu占用 99.8

dockerfile变量 dockerfile参数_压力测试_02

 

 

二、参数解释(第一个字都是大写):

FROM  :指定镜像信息;MAINTAINER : 指定镜像的作者信息(包括联系信息);

RUN   :指定镜像构建时的命令;      

EXPOSE : 指定端口,可以指定多个(但不会自动打开,docker run时仍要指定);

CMD与ENTERYPOINT : 指定容器运行时运行的命令(如run容器时指定了命令,那么CMD命令会被覆盖,后者则不会,除非指定了ENTERYPOINT,所以一般指定容器运行时运行的程序用ENTERYPOINT,参数用CMD[]来指定);

CMD [  “executable” ,”param1” ,“param2” ] (exec模式)

CMD command param1 param2 (shell模式)

CMD [ “param1”,”param2” ]  (作为ENTRYPOINT指令的默认参数)

 

ADD\COPY\VOLUME  :  设置目录与文档(copy的文档目录一般放在与dockerfile同级),ADD\COPY的区别是add包含了tar的解压功能,copy纯粹是cp文档;  VOLUME 用来添加卷  

 ONBUILD :类似触发器命令(如后面加copy命令,但不会在本次构建a(生成镜像image_a)中执行,会在下次构建b时(FROM的镜像指定为构建a生成的镜像image_a)执行构建a中的ONBUILD指令)

WORKDIR \ ENV \ USER :设置镜像构建与容器运行时的环境设置(要使用绝地路径,不然路径会传递下去)。

ENV:  在镜像构建过程与容器运行过程中都有效。

 

三、常用镜像相关的命令:

Docker history  <image name:版本号>      ##查看镜像的构建过程;

dockerfile变量 dockerfile参数_Docker_03

Docker build  -t=’test_xxx’  .  --no-cache      ##构建时不使用缓存

(或在dockerfile中加入”ENV REFRESH_DATE 2019-09-17” 也会刷新缓存 )。