Docker基础系列三:DockerFile

DockerFile

What?

DockerFile是用来构建Docke镜像的构建文件,是由一系列命令和参数构成的脚本。

构建三步骤:

  1. 编写DockerFile源文件
  2. 使用docker build -f 命令进行构建
  3. 使用docker run 运行。

DockerFile解析

Dockerfile内容基础知识
  1. 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
  2. 指令按照从上到下,顺序执行
  3. #表示注释
  4. 每条指令都会创建一个新的镜像层,并对颈项进行提交
Docker执行Dockerfile的大致流程
  1. docker从基础镜像运行一个容器
  2. 执行一条指令并对容器作出修改
  3. 执行类似docker commit的操作 提交一个新的镜像层
  4. docker再给予刚提交的镜像运行一个新容器
  5. 执行dockerfile中的下一条指令知道所有指令都执行完成

Dockerfile相当于软件的原材料========>>Dockerfile面向开发

Docker镜像是软件的交付品========>>Docker镜像称为交付标准

Docker 容器则可以认为是软件的运行态========>>Docker容器设计部署与运维。

Dockerfile保留关键字
- FROM:基础镜像,当前亲镜像是基于那个镜像的
- MAINTAINER:镜像维护者的姓名和邮箱地址
- RUN:容器构建时需要运行的命令,
    比如想在自己的ubuntu镜像中使用vim,那么在dockerfile中就需要写
    RUN apt-get update 
    RUN apt-get install vim
- EXPOSE:当前容器对外暴露的端口
- WORKDIR:指定在创建容器后,终端默认登录进来的目录,一个落脚点
- ENV:用来在构建镜像过程中设置环境变量
- ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
- COPY:和ADD类似,这个命令不会解压
- VOLUME:制定容器数据卷
- CMD:指定一个容器启动时要运行的命令
    Dockerfile中可以有多个CMD命令。但只有随后一个生效。
    CMD会被docker run之后的参数替换
- ENTRYPOINT:和CMD类似,这个命令不会覆盖,是追加
- ONBUILD:当构建一个被继承的Dockerfile是运行命令,父镜像在被集成后父镜像的onbuild被触发
Example
Base镜像(scratch)
相当于Java中的Object类。
Docker Hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的
自定义镜像myubuntu

需求:

1. 可以使用ifconfig
2. 启动后可以直接进入家目录,而不是默认的根目录

编写dockerfile文件:

FROM yao/ubuntu
MAINTAINER yao<jtalentyao@gamil.com>
ENV MYPATH /root
WORKDIR $MYPATH

RUN apt install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "success-----------OK"
CMD /bin/bash
#bash 运行
docker build -f ~/Document/mydocker/Dockerfile2 -t yao/ubuntu:1.1 .

如此,yao/ubuntu可以使用ifconfig命令

docker history imageid 查看镜像历史

ps:本博客是学习视频时所做,目的是作为自己的学习笔记。同时发表出来是希望可以帮到其他人,有大佬发现本博客的错误、不足,还请指正。
End.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值