k8s

docker Dockerfile

2017-11-28  本文已影响37人  bdslinux

Dockerfile 介绍

它是一个文本文件,镜像文件构建脚本
由一些列用于根据基础镜像构建新的镜像文件的专用指令序列组成

Dockerfile command

FROM

必须是第一个非注释行,用于指定所用到的基础镜像

语法格式

注意: 尽量不要在一个dockerfile中使用多个FROM指令

MAINTANIER

用于提供信息的指令,用于让作者提供本人的信息
建议紧跟在FROM以后,不限制出现的位置

语法格式

MAINTANIER <authors detail>

COPY

用于docker主机复制文件指向正在创建的映像文件中

语法格式
解释
注意

ADD

类似于COPY指令,额外还支持复制tar文件,以及URL语法

语法格式
注意

ENV

定义环境变量,此变量可被当前dockerfile文件中的其它指令调用
调用格式为$varaible_name或者${variable_name}

语法格式
注意

USER

指定运行镜像时候, 或运行Dockerfile文件中的任何RUN,CMD,/ENTRYPORINT指定的程序时的用户名或者UID

语法格式
注意

WORKDIR

用于为Dockerfile中所有的指令指定工作目录

语法格式
注意

VOLUME

用于目标镜像文件中创建一个挂载点的目录,用于挂载主机上的卷或者其它容器的卷

语法格式

RUN

于指定docker build命令过程中运行的命令

语法格式
注意

CMD

类似于RUN指令,用于运行程序,但二者运行的是场景不同
CMD在docker run时运行而非docker build,CMD指令的首
要目的为了在于为启动的容器指定默认要运行的程序程序
运行结束, 容器也就结束,不过,CMD指令指定的程序可被
docker run命令行参数中执行的要运行的程序所覆盖

语法格式
注意

ENTRYPOINT

类似于CMD,为容器指定默认的启动程序,不会被docker run
所运行的程序所覆盖.而且这些命令行参数,会被当作参数送
给ENTRYPOINT指令指定的程序但是如果运行docker run时,
使用了 --entrypoint选项,此选项的参数可当作要运行的程序覆盖
ENTRYPOINT指令指定的程序

语法格式

EXPOSE

用于为容器指定要暴露的端口

语法格式
例如 eg:

ONBUILD

定义触发器

当前dockerfile构建出的镜像被用作基础镜像,去构建其他镜像的时候,ONBUILD指令指定的操作才会被执行

语法格式
注意

ONBUILD不能自我嵌套,且不会触发FROM和MAINTERNATER指令

docker command

docker build -t bdshello  .     #创建image镜像构建Dockerfile 
docker run -p 4000:80 bdshello  #启动bdshello容器 映射端口
docker run -d -p 4000:80 bdshello  #后台启动
docker container ls             #显示所有启动的容器
docker container ls -a          #显示所有容器包括不启动的
docker container stop <hash id>     #优雅停止容器 
docker container kill  <hash id>    #强制停止容器
docker container rm <hash id>       #移除容器 
docker container rm  $(docker container ls -a -q)  #移除所有容器 
docker image ls -a                #列出所有镜像 
docker image rm <image id>        #删除镜像
docker image rm $(docker image ls -a -q)  #删除所有镜像
上一篇 下一篇

猜你喜欢

热点阅读