Docker学习3-DockerFile-26

概述

DockerFile 可以编译成为一个 镜像. 是一个精简版的 OS. 只包含内核.

在这里插入图片描述

指令初解

FROM: 表示 centos 的镜像文件最基础来自于 scrath 这个文件
MAINTAINER: 作者+邮箱
RUN: 容器构建时需要运行的命令
EXPOSE: 当前容器对外暴露的端口
WORKDIR: 容器创建后的落脚点. 一个目录. 没有的话容器创建时会自动创建
ENV: 设置环境变量
ADD: 将宿主机文件 拷贝到 镜像并解压
COPY: 将宿主机文件 copy到镜像但是不解压
VOLUME: 容器数据卷,用于数据保存和持久化工作
CMD: 容器启动时要运行的命令.可以有多个. 但是只会执行最后一个.会被 run 后的 命令替代
ENTRYPOINT: 容器启动时要运行的命令.和 CMD一样,指定容器启动程序及参数

在这里插入图片描述

基础知识

每条保留字指令必须为 大写字母,且后面要跟随一个参数
指令从上到下顺序执行
# 表示注释
每条指令会创建一个新的镜像层,并对镜像提交

在这里插入图片描述

Base镜像: Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的

FROM scratch

详解

有时候我们在 执行 docker run -it 时,有时候会在最末尾带上 /bin/bash
有时候不会带上.
如果我们 +上 /bin/bash. 相当于 在DockerFile 末尾又加上一句 /bin/bash

一堆啊.之前学过了都,怎么又忘了呢
RUN

容器构件时,会执行的命令.一般是 Linux 命令.安装 一些软件包之类的

EXPOSE

创建容器后,指定 暴露的端口号

WORKDIR

创建容器后,登录进来创建的落脚点. 进来容器在哪个目录下

ENV

在构建镜像中设置环境变量. 后续任何指令中使用这些环境变量
ENV MY_PATH /usr/myTemp
WORKDIR $MY_PATH

ADD

在镜像build过程中.
会自动处理RUL和解压缩文件

COPY

将文件copy到镜像中,但不会进行解压缩的操作
COPY src dest
COPY ["src","dest"]

VOLUME

容器数据卷. 用于数据保存和持久化工作

CMD

指定一个容器启动要运行的命令
dockerFile 可以有多个CMD,且会被最后一个替换.
如果生成 docker 容器的命令中, 输入了 cmd 命令的话. 将会被替换成你输入的命令
cmd <命令>
cmd ["可执行文件","参数1","参数2"]
参数列表格式:
	CMD ["参数1","参数2",...] 在制定了 ENTRYPOINT 指令后,用CMD 制定具体参数

ENTRYPOINT

可以追加命令或参数

ONBUILD

当构建一个被继承的DockerFIle时运行命令. 父镜像在被子继承后父镜像的 onbuild 被触发

在这里插入图片描述

案例

FROM centos
ENV MYPATH /tmp
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "success...ok"
CMD /bin/bash

docker build -f /home/dxh/docker/dockerFileName -t imageName:TAG .

指令值一行一行执行的.虽然会被覆盖. 但是在镜像构建完成后.
在运行容器. 则会被最后一行的 /bin/bash 覆盖.
如果你运行容器就可以看到

列出镜像变更历史

docker history 镜像名

在这里插入图片描述

编写可以查询IP地址的镜像

在这里插入图片描述
原谅我,实在懒得写了
一共34集.记录到26集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值