,dokerfike如何让docker体积更小?

用户投稿 17 0

关于“php_dockerfile”的问题,小编就整理了【3】个相关介绍“php_dockerfile”的解答:

dokerfike如何让docker体积更小?

Dockerfile减少构建镜像大小的方法

这几天基于Dockerfile构建应用需要的特殊的镜像,比如Nginx需要add很多module的,就需要在镜像内编译和做build.

通过Dockerfile构建镜像时,很容易把镜像构建得很大。

从通俗得原来上来说,一次RUN形成新的一层,如果没有在同一层删除,无论文件是否最后删除,都会带到下一层。

所以建议如下:

尽量在同一层运行更多的命令,比如

RUN cp /usr/local/aa.tar.gz /opt

RUN tar xvf /opt/aa.tar.gz

RUN rm -rf /opt/aa.tar.gz

可以修改成

RUN cp /usr/local/aa.tar.gz /opt && \

tar xvf /opt/aa.tar.gz && \

rm -rf /opt/aa.tar.gz

如果在镜像中通过yum安装软件包,尽量在一行装完,不要多行,同样安装完后运行,clean all后对大小影响很大

yum clean all

RUN yum -y —enablerepo=rpmforge-extras install php \

dockerfile中可以写多个from吗?

可以,构建镜像时,Docker需要先准备context ,将所有需要的文件收集到进程中。默认的context包含Dockerfile目录中的所有文件,但是实际上,并不需要.git目录,node_modules目录等内容。

.dockerignore 的作用和语法类似于 .gitignore,可以忽略一些不需要的文件,这样可以有效加快镜像构建时间,同时减少Docker镜像的大小。

docker中容器和镜像的区别?

1、镜像

Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板

通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。

2、容器

Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

3、仓库

Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。

Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker 目录下。

1. Docker镜像:

Images和Container的概念就像类和对象,其中对象是类的实例,类是对象的蓝图。镜像在虚拟机和 Docker 中是不同的,在虚拟机镜像中,只是虚拟机在不同时间点运行的快照,但 Docker 镜像与它们有一点不同,最重要和主要的区别是 Docker 镜像是不可变的那就是他们不能改变。

2. Docker容器

它们实际上是 Docker 虚拟机,但通常被称为 Docker Containers。如果 Docker 镜像是房屋的地图,那么 Docker Container 就是实际的构建房屋,或者换句话说,我们可以将其称为镜像的实例。根据官方网站,容器是图像的可运行实例。

到此,以上就是小编对于“php_dockerfile”的问题就介绍到这了,希望介绍关于“php_dockerfile”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!