Dockerfile 简介

1、介绍

创建docker 镜像有两种方法

1 是通过commit命令 形成一个新的镜像

2 就是通过dockerfile,通过build 构建最终的镜像文件。

在实际环境中,变量很多,不能说修改一次commit一次,很麻烦,此时我们就可以通过dockerfile来创建镜像,一次搞定。

dockerfile 文件:

从上到下执行,关键保留字都要大写。

每次运行一行都相当于创建了一个新的镜像,commit一次,之后在创建出一个容器,在容器内在执行下一条命令,直到命令全部运行完形成最终的镜像。

2、Dockerfile保留字简介

官网 dockerfile

2.1 FROM

from是指基础镜像,当前新镜像是基于哪一个镜像的,指定一个已存在的镜像作为模板。

2.2 MAINTAINER

是镜像维护者 指当前的镜像是由谁编写的 加上姓名和邮箱。

2.3 RUN

run是在docker built 时运行的,他有两种格式

1、 是 shell格式 比如 RUN apt-get -y install vim  (更常用)

2、是exec格式  RUN ['可执行文件',‘参数1’,‘参数2’]

比如 RUN['./text.php','dev','offline'] 就相当于 RUN ./text.php dev offline

2.4 EXPOSE

当前容器对外暴露出的端口,就比如我们的-p

2.5 WORKDIR

指定在我们的容器创建后,默认进入的工作目录,一个落脚点

2.6 USER(一般不用)

指定镜像以什么样的用户去执行,如果不指定,就是root 

2.7 ENV

用于在构建镜像的过程中 设置环境变量。

2.8 VOLUME

容器卷 即-v

2.9 ADD

ADD 是COPY+解压

2.10 COPY

COPY 没有解压功能

COPY是将宿主机的文件或目录 复制到我们镜像中

命令:

类似于 docker cp....

2.11 CMD

注意:

Dockerfile 可以有多个CMD命令,但是最终只会有最后一个生效,并且 CMD 命令会被docker run后边的参数所取代。

比如 tomcat  Dockerfilw 最后是 CMD ['catalina.sh',‘run’]

当我们启动一个tomcat容器时,会自动执行该命令 ,且如果访问8080端口,会访问成功。

但是如果我们写了 docker run -d tomcat /bin/bash 

则会用bin/bash 代替 原始的CMD 此时在访问 8080端口就会失败。

2.12 ENTRYPOINT

可以和CMD 一起使用,一般是变参的话才会只用CMD,此时CMD等于是在给ENTRYPOINT传参,而不是run时要使用的命令。

CMD也会被run后参数取代

2.13 Dockerfile小案例

通过Dockerfile 在ubuntu上添加一个vim功能 生成一个新的镜像。

使用docker built -t 镜像名 [:tag] .

记得最后有一个 空格加一个点

已生成

3、虚悬镜像 

仓库名和tag 都为None

Dockerfile 内容:

第一次有个错误:即 我写成了 FROM Ubuntu 仓库第一个字母大写了

创建

docker image ls -f dangling=True 查找本地所有的虚悬镜像

docker image prune 删除虚悬镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值