上面我们已经介绍了Docker以及在使用Docker过程中常用的一些命令。而本小结将会介绍Dockerfile,Dockerfile是常用的一种创建镜像的方式,由file我们也不难知道Dockerfile就是一个Docker文件,可以简单把它理解成在其内部定义了构建Docker容器的一条条指令,而每一条指令的内容都代表了构建容器的每个流程,Docker通过读取Dockerfile内的每条指令来构建镜像。下面我们将会简单介绍编写Dockerfile的常用指令及其搭建流程,并最终使用Dockerfile来搭建一个centos镜像。(PS:本文中的Dockerfile仅仅是简单介绍,之后Dockerfile的详细编写会单独成文整理)
Dockerfile官方文档:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
在介绍Dockerfile之前,我们首先通过下面这张图来直观的了解下Dockerfile(来源网络,侵删。)
从上图我们可以大致了解Dockerfile的编写流程,一个标准的Dockerfile以FROM指令开头(除注释之外,注释通过#进行),一般来说,Dockerfile中的指令主要包括四种类型,该四种类型也就是编写Dockerfile的一般流程:
指定构建新镜像的基础镜像(父镜像):FROM
说明所构建镜像的维护者信息:MAINTAINER(官方已经不赞成使用)、LABEL(建议使用)
对镜像的操作指令:RUN、ENV、ADD、COPY以及WORKDIR
对容器的启动指令:CMD、ENTRYPOINT、USER
下面我们通过Dockerfile的形式来搭建一个nginx容器,并访问其index.html页面。
创建一个工作目录,用于指定创建新镜像的所需要的文件(不做要求,但却是一种创建镜像的规范)
mkdir demo_dockerfilecd demo_dockerfile
vim Dockerfile
编写Dockerfile文件
FROM nginxLABEL author=taoye email=26647879@qq.com desc="Hello Dockerfile, I am a coder."
Dockerfile文件写完之后,我们通过该文件来创建一个新的镜像,-t参数用于指定创建新镜像的仓库和名称,并设置版本,注意在结尾有.,表示的是指定构建新镜像过程中的上下文环境的目录。
docker build -t demo_nginx/demo_dockerfile:v1.0 .执行之后docker build之后便会在本地创建了一个新的镜像,我们可以通过该镜像来创建容器并使用curl来进行测试
docker run --name demo_nginx -d -p 7777:80 demo_nginx/demo_dockerfile:v1.0curl localhost:7777
总结
本文首先介绍的是对Docker基本认识,其次详细说明了Docker环境的搭建,之后常见的Docker操作,最后简单介绍了Dockerfile及通过Dockerfile创建一个简单nginx容器。在之后文章中会详细介绍Dockerfile,最好的学习方式莫过于从官方文档中尽情的无偿汲取知识,本文说到底仅仅是在学习Docker官方文档之后的一个简单总结,所涉及到的也只是冰山一角。Docker官方文档中包含了详细且全面的介绍,涉及到Docker的方方面面,有条件的朋友强烈建议阅读耐心地阅读官方文档: