Alpine Linux是一款独立的非商业性通用Linux发行版,专为那些了解安全性,简单性和资源效率的高级用户而设计。
Alpine Linux围绕musl libc和busybox构建。这使得它比传统的GNU / Linux发行版更小,更节省资源。一个容器需要不超过8 MB的空间,而对磁盘的最小安装需要大约130 MB的存储空间。您不仅可以获得完整的Linux环境,还可以从存储库中选择大量的软件包。
Alpine Linux是一个非常简单的发行版,它会尽量避免使用。它使用自己的包管理器,称为apk,OpenRC init系统,脚本驱动的设置,就是这样!这为您提供了一个简单,清晰的Linux环境,没有任何噪音。然后,您可以添加项目所需的软件包,因此无论是构建家用PVR还是iSCSI存储控制器,薄型邮件服务器容器或坚如磐石的嵌入式交换机,其他都不会挡道。
Alpine Linux的设计考虑到了安全性。内核修补了一个非官方的grsecurity / PaX端口,并且所有的用户级二进制文件被编译为位置独立可执行文件(PIE)和堆栈粉碎保护。这些主动安全功能可防止利用整个类别的零日等漏洞。
插个小消息,也方便想学习的同学,在文章下方留言即可试听课程外加领取千锋HTML5、UI交互设计、PHP、Java+云数据、大数据开发、VR/AR/Unity游戏开发、Python人工智能、Linux云计算、全栈软件测试、网络安全等全部的视频学习教程。
一个镜像可以有多个LABEL标签。您可以在一行中指定多个标签。并且目前的版本不再会影响到镜像的大小了。
之前说过,Dockerfile 中每一个指令都会建立一层,RUN 也不例外。每一个 RUN 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后,commit 这一层的修改,构成新的镜像。
注意:Union FS 是有最大层数限制的,比如 AUFS,曾经是最大不得超过 42 层,现在是不得超过 127 层。
写 Dockerfile 的时候,要经常提醒自己,这并不是在写 Shell 脚本,而是在定义每一层该如何构建。注意当使用 exec 方式时,需要明确指定 shell 路径,否则变量可能不会生效。

