Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
在Linux中镜像往往非常大,但是使用Docker镜像是以个例外。使用Linux Docker制作的镜像,小的可能只有几M。本文就来介绍一下在Linux系统中如何使Docker镜像变小的方法。
传统的镜像写法:
FROM ubuntu:12.04
RUN apt-get update
RUN apt-get install -y nginx zip curl
RUN echo “daemon off;” 》》 /etc/nginx/nginx.conf
RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master
RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* 。 && rm -rf 2048-master master.zip
EXPOSE 80
CMD [“/usr/sbin/nginx”, “-c”, “/etc/nginx/nginx.conf”]
Linux使Docker镜像变小的方法
基于ubuntu12.04,先来一个更新,然后安装nginx、zip、curl,配置nginx,下载2048代码,解压再放到指定位置,删除原始文件,抛出80端口,最后是执行命令。
这样的dockerfile再熟悉不过了吧,随便docker hub或者其他教学文档都是这样,接下来,我们来谈谈中间的毛病。
1、pull一个ubuntu需要多少时间,占多大的空间?(初学者好多在这一步就头痛)2、ubuntu在没有添加中国镜像源的情况,更新是个多么痛苦的事?3、配置 4、整个生成的镜像硕大无比,玩个2048不需要这么复杂。
光提问题,不给解决方案就是耍流氓,还是看dockerfile:
FROM alpine:latest
MAINTAINER alex alexwhen@gmail.com
RUN apk --update add nginx
COPY 。 /usr/share/nginx/html
EXPOSE 80
CMD [“nginx”, “-g”, “daemon off;”]
极简化的利用dockerfile和base镜像和github的特性,能少一句就少一句,动动手试一下,这样build出来,整个镜像不超过10M,回过头来看看前面的镜像,光一个ubuntu得多大啊,实在是居家必备。
以上就是在Linux系统中如何使Docker镜像变小的方法介绍了,Linux镜像越小占用空间就越少,而且安装就更快。
Linux是一套免费使用和自由传播的类Unix操作系统
|