Docker学习--初识DockerFile

什么是DockerFile ?

   DockerFile就是用来构建docker镜像的构建文件!包含了若干的命令行,并支持#作为注释行,通过这个脚本可以生成一个镜像。

  镜像是一层一层的,

 构建步骤:

1:编写一个dockerfile文件

2:docker build构建成一个镜像

3:docker run 运行镜像

4:docker push发布镜像(Docker Hub,阿里云镜像仓库)

查下官方是怎么做的 ?

Docker学习--初识DockerFile_第1张图片

Docker学习--初识DockerFile_第2张图片

会发现很多官方的镜像都是基础包,很多功能没有,我们需要自己来通常会来自己搭建自己的镜像。

DockerFile的构建过程

   基础知识:

  1. 每个保留关键字(指令)都必须是大写的
  2. 指令从上到下的顺序执行
  3. #表示注释
  4. 每一个指令都会创建提交一个新的镜像层,并提交!

Docker学习--初识DockerFile_第3张图片

dockerfile是面向开发的,我们以后要发布项目,做镜像,就是要编写dockerfile文件,这个文件不是很复杂

Docker镜像逐渐成为了企业的交付标准,必须要掌握!

步骤:开发,部署,运维。。。

DockerFile:构建文件,定义了一切的步骤

DockerImages:通过dockerFile构建生成的镜像,最终发布和运行的产品,原来的是jar,war包

Docker容器:容器就是运行起来提供服务的。

 

DockerFile的指令

FROM                # 基础镜像,一切从这里开始构建 centos
MAINTAINER          # 镜像是谁写的,姓名+邮箱
RUN                 # 镜像构建时需要运行的命令
ADD                 # 步骤,tomcat镜像,这个tomcat的压缩包!添加内容
WORKDIR             # 镜像的工作目录
VOLUME              # 挂载的目录
EXPOSE              # 暴露端口
CMD                 # 指定这个容器启动的时候 运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT          # 指定这个容器启动的时候 运行的命令,可以直接追加命令
ONBUILD             # 当构建一个被继承的DockerFile,这个时候会运行ONBUILD的指令,触发指令
COPY                # 类似ADD命令,将我们的文件拷贝到镜像中
ENV                 # 构建的时候,设置环境变量

实战测试

Docker Hub中99%的镜像都是从这个基础镜像过来的 FROM scratch,然后配置需要的软件和配置来进行的构建。

Docker学习--初识DockerFile_第4张图片

创建一个自己的Centos

# 1:编写DockerFile文件
[root@tianliang dockerfile]# cat mydockerfile-centos
FROM centos
MAINTAINER tianliang<[email protected]>

ENV MYPATH /usr/local
WORKDIR $MYPATH


RUN yum -y install vim
RUN yum -y install net-tools


EXPOSE 80 

CMD echo $mypath
CMD echo "------END----------"
CMD /bin/bash


#通过这个命令构建镜像
#命令 docker build -f 文件路径  -f 镜像名:[tag]
Sucessful built ******
Sucessful tagget mycentos:0.1

#测试运行

Docker学习--初识DockerFile_第5张图片

我们可以列出本地镜像变更历史 docker history 镜像ID

Docker学习--初识DockerFile_第6张图片

 

 

你可能感兴趣的:(Docker命令学习)