镜像是容器的模板,容器是镜像运行的实例,可以类比为模具和实物的关系或者编程语言里面"类"和"实例"的关系,镜像是静态的定义,容器是动态运行的实体 一、镜像的构成hello-world Hello-world是docker官方提供的一个很小的镜像,用来测试docker是否正确运行
这个镜像才1.04kb,我们看下他的Dockerfile描述
(1) FROM scratch 说明镜像是白手起家,从0开始构建 (2) COPY hello / 将文件"hello"复制到镜像的目录 (3) CMD ["/hello"] 容器启动时执行 /hello 二、Dockerfile的构建概念:Dockerfile 是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据 Dockerfile 的内容构建我们自己需要的镜像 base镜像: a、不依赖其他镜像,从scratch开始 b、以其他镜像为基础扩展 Dockerfile常用指令,主要分为配置指令和操作指令,一图展示各种命令 dockerfile常用命令 配置指令2.1、ARG(定义镜像创建过程中的变量)
2.2、FROM
2.3、LABEL
例如:LABEL version="l.0.0-rc3" LABEL author="yeasy@github" date="2020-01-01" 2.4、EXPOSE(声明镜像内服务监听的端口)
例如:EXPOSE 22 80 8443 2.5、ENV
例如: ENV APP_VERSION=1.0.0 ENV APP_HOME=/usr/local/bin ENV PATH $PATH:/usr/local/bin 2.6、ENTRYPOINT 支持两种格式: □ ENTRYPOINT ["executable", "paraml ", "param2"]:exec 调用执行; □ ENTRYPOINT command param 1 param2: shell 中执行; 每个Dockerfile 中只能有一个ENTRYPOINT, 当指定多个时,只有最后一个起效。 2.7、WORKDIR 指定工作目录
WORKDIR /root/test 操作指令2.8、RUN
例如: RUN apt-get update \ && apt-get install -y libsnappy-dev zliblg-dev libbz2-dev \ && rm -rf /var/cache/apt 2.9、CMD(启动容器时指定默认执行的命令)
每个Dockerfile 只能有一条CMD 命令。如果指定了多条命令,只有最后一条会被执行 2.10、ADD
COPY的作用和ADD类似,这里不再赘述 三、通过示例练习Dockerfile
推荐阅读:手机性价比排行榜 (正文已结束) (编辑:喜羊羊) 免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎! |