Docker镜像的构成__Dockerfile

相比docker commit来说,Dockerfile的方法会更加自动化,更加方便快捷,而且功能也更强大。拿构建Nginx容器举例。

先创建一个目录

mkdir /opt/docker-file

进入目录

cd /opt/docker-file/

然后创建一个Nginx目录并进入,创建一个Dockerfile文件并写入一些命令

cd Nginx
vim Dockerfile
#This is my docker file

#Version 1 
#Auth Wt

#Base
FROM centos                           #基础镜像是centos,后面跟有效的镜像名(如果该镜像你的本地仓库没有则会从远程仓库Pull取)。后面的指令在些镜像中执行
MAINTAINER wt                            #告诉别人,是谁创建的(维护者信息)
ADD pcre-8.39.tar.gz /usr/local/src               #打包一些文件(这里是下载好之后的,下载好的文件必须也是同级目录,这里使用ADD命令,如果是一个压缩包不需要解压命令,它会自动帮我们解压)
ADD Nginx-1.13.4.tar.gz /usr/local/src
RUN yum install -y wget gcc gcc-c++ make openssl-devel   #执行一些系统命令,每一条RUN指令(可能会有多条linux命令)会在当前容器最上面的可读写层执行并且提交成一个新的镜像层,接下来的指令会在这个新的镜
像层里执行。 RUN useradd
-s /sbin/nologin -M www workdir /usr/local/src/Nginx-1.13.4            #进入指定目录工作。 RUN ./configure --prefix=/usr/local/Nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.39 && make && make install RUN echo "daemon off;" >> /usr/local/Nginx/conf/Nginx.conf     #修改Nginx自启动 ENV PATH /usr/local/Nginx/sbin:$PATH EXPOSE 80                                 #指定容器对外暴露的端口号。 CMD ["Nginx"]                            #指定你制作出来的镜像在启动成容器时运行命令的认的参数。

Dockerfile 写完之后开始构建

docker build -t Nginx-file:v1 /opt/docker-file/Nginx

接下来就可以看到每一步的操作了,每一步都有一个ID,都是一个层级。

最后访问宿主机的IP就可以看到Nginx的欢迎界面了。

当然此案例只是一个入门,做到更深入全面的操作还需要更多的实际项目参与。

 

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...