微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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的欢迎界面了。

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐