Docker----dockerfile

DockerFile

 

dockerfile是用来构建dokcer镜像的文件!命令參数脚本!
构建步骤:
1、编写一个dockerfile文件


2.docker build构建成为一个镜像

 

3,docker run运行镜像


4.docker push发布镜像(DockerHub、阿里云镜像仓库!)

 

 

 查看官方的镜像:

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像!
官方既然可以制作镜像,那我们也可以!

 

DockerFile构建过程


很多指令:

基础知识:
1、每个保留关键字(指令)都是必须是大写字母

2、执行从上到下顺序执行

3、#表示注释

4、每一个指令都会创建提交一个新的镜像层,并提交!

 

 

 

 

 

 

 

dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单!
Docker镜像逐渐成为企业交付的标准,必须要掌握!

 

步骤:开发,部罢,运维。。。缺一不可!
Dockerile:构建文件,定义了一切的步骤,源代码

Dockerlmages:通过DockerFile构建生成的镜像,最终发布和运行的产品!

Docker容器:容器就是镜像运行起来提供服务器

 

 

 

DockerFile的指令


FROM               #基础镜镜像,一切从这里开始构建

MAINTAINER      #镜像是谁写的,姓名+邮箱

RUN                      #镜像构建的时候需要运行的命令

ADD                     #步骤:tomcat镜像,这个tomcat压缩包!添加内容

WORKDIR             #镜像的工作目录

VOLUME             #挂载的目录

EXPOSE                #保留端口配置 

CMD                      #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代

ENTRYPOINT        #指定这个容器启动的时候要运行的命令,可以追加命令

ONBUILD              #当构建一个被继承DockerFile这个时候就会运行ONBUILD 的指令。触发指令。

COPY                   #类似ADD,将我们文件拷贝到镜像中

ENV                     #构建的时候设置环境变量!


因为镜像是一个经过阉割的软件,我们在启动容器后,会发现这个容器并不是拥有原本软件的所有功能,如果我们希望做一个符合自己期望的容器,那么就可以使用dockerfile
的技术创建一个符合自己要求的容器。

 

 

 但是我们可以构造自己的容器:

 

 

 使用自己的dockefile文件生成自己的镜像:

docker build -f dockerfiler-centos -t mycentos:0.2 . (不要忘记最后的 ".")

  •  -f    指定dockerfile文件所在的目录
  • -t     生成的对象和版本

 

 我们可以通过docker    history   镜像id(或镜像名:tag)查看一个镜像的构建过程

 

 

 CMD和ENTRYPOINT的不同

  • CMD 命令是不能通过命令行进行追加的。
  • ENTRYPOINT命令是可以通过命令行进行追加操作的。

我们制作两个dockerfile文件,一个使用CMD命令,一个使用ENTRYPOINT命令:

 

1,CMD命令镜像

 

直接运行会在容器生成运行之后执行ls -a的命令

 

 

 但是我们在启动容器的命令后面加上 -l并不会执行ls -a -l 的命令,因为-l命令会将ls -a覆盖,-l不是命令,所以会报错:

 

 

 

不报错的话,我们只能使用完整的命令进行覆盖:

 

 

 2,接下来我们编写一个ENTRYPOINT命令的dockerfile制作镜像:

 

 

 

 

 

但是我们可以在启动容器语句的最后面使用添加命令的方式,进行命令的补充

 

 

 

因为是命令的补充不是重写,所以不能使用完整命令,否则会报错

 

 

posted @ 2020-11-23 18:05  Joker-0927  阅读(86)  评论(0编辑  收藏  举报
// 侧边栏目录