DockerFile 快速入门

DockerFile是什么?

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

Dockerfile和Docker镜像的关系就像是java源代码和执行文件class的关系。

使用DockerFile构建镜像的步骤。

编写DockerFile文件—> docker build —> docker run

长什么样?

编写DockerFile内容的注意事项

  1. 每条保留字指令都必须为大写字母,而且后面必须跟随至少一个参数。
  2. 指令从上到下,顺序执行
  3. '#'表示注释
  4. 每条指令都会创建一个新的镜像层,并对镜像进行提交。

Docker执行DockerFile的大致流程

  1. docker从基础镜像运行一个容器
  2. 执行一条指令并对容器做出修改
  3. 执行类似docker commit的操作,提交一个新的镜像层
  4. docker在基于新提交的镜像运行一个新的容器
  5. 执行DockerFile中的下一条指令,直到所有指令执行完成

DockerFile的保留字指令

FROM  #基础镜像,当前新的镜像是基于那个镜像

MAINTTAINER  # 维护镜像人的姓名和邮箱(作者)

RUN # 容器构建时需要执行的命令

EXPOSE # 当前容器对外暴露的端口号

WORKDIR  # 指定在创建容器后,终端默认登录进来的工作目录 

ENV  # 用来在构建镜像过程中设置环境变量

ADD  # 复制一个文件并解压缩

COPY  #单纯复制一个文件

VOLUME  #容器数据卷,用于数据保存和持久化工作

CMD  # 指定一个容器启动后,运行的命令(可以有多个CMD指令,但是只有最后一个生效。CMD会被docker run之后的参数替换)

ENTRYPOINT  #指定一个容器启动后,运行的命令 

ONBUILD  #类似于触发器,当构建一个被继承的Dockerfile时运行命令,父镜像在被子镜像继承后,父镜像的onbuild会被触发

案例

1.编写Dockerfile

FROM centos  #基础镜像 

MAINTTAINER zjj<1161493927@qq.com>  #作者和邮箱

ENV MYDIVPATH /usr/local  # 环境变量
WORKDIR $MYDIVPATH  #使用定义的环境变量作为终端登录进来的默认目录

RUN yum -y install vim  #执行的命令
RUN yum -y install net-tools   #执行的命令

EXPOSE 81  #对外暴露的端口 

CMD echo "success"  # 指定一个容器启动后,运行的命令
CMD /bin/bash  # 指定一个容器启动后,运行的命令
  1. 通过Dockerfile构建Docker镜像
docker build -f 构建的DockerFile文件位置 -t 生成的镜像文件名 . #最后有个点别忘了,代表当前目录
#例子
docker build -f /mydocker/Dockerfile -t zjj/mycentos:1.1 .
  1. 查看

docker images

  1. 运行

docker run -it 新镜像名:版本号

  1. 查看镜像的变更历史

docker history 镜像名或镜像ID

posted @ 2020-05-10 20:59  酷酷的洛克  阅读(583)  评论(0编辑  收藏  举报