千鋒Linux雲計算教程全套視頻合集:關於Alpine Linux

Alpine Linux是一款獨立的非商業性通用Linux發行版,專為那些瞭解安全性,簡單性和資源效率的高級用戶而設計。

千鋒Linux雲計算教程全套視頻合集:關於Alpine 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)和堆棧粉碎保護。這些主動安全功能可防止利用整個類別的零日等漏洞。

千鋒Linux雲計算教程全套視頻合集:關於Alpine Linux

插個小消息,也方便想學習的同學,在文章下方留言即可試聽課程外加領取千鋒HTML5、UI交互設計、PHP、Java+雲數據、大數據開發、VR/AR/Unity遊戲開發、Python人工智能、Linux雲計算、全棧軟件測試、網絡安全等全部的視頻學習教程。

LABEL 指令:

LABEL 指令用於指定一個鏡像的描述信息

該LABEL指令將元數據添加到鏡像中。

LABEL是一個鍵值對。

要在LABEL值中包含空格,請像在命令行解析中一樣使用引號和續行符\\。

千鋒Linux雲計算教程全套視頻合集:關於Alpine Linux

幾個用法示例:

LABEL maintainer="[email protected]" LABEL "com.example.vendor"="ACME Incorporated" LABEL com.example.label-with-value="foo" LABEL version="1.0" LABEL description="This text illustrates \\ that label-values can span multiple lines."

一個鏡像可以有多個LABEL標籤。您可以在一行中指定多個標籤。並且目前的版本不再會影響到鏡像的大小了。

但是仍然可以把他們寫在一行或用反斜線進行續航

LABEL multi.label1="value1" multi.label2="value2" other="value3"

LABEL multi.label1="value1" \\

multi.label2="value2" \\

other="value3"

有繼承關係的鏡像,標籤也會有面向對象編程中繼承的關係和特性

要查看鏡像的 LABEL 信息,請使用該docker inspect命令。

ENV 指令

用於設置環境變量

格式有兩種:

  • ENV <value>
  • ENV <key1>=<value1> <key2>=<value2>.../<value2>/<key2>/<value1>/<key1>

示例:

推薦的方式,易讀

ENV VERSION=1.0 DEBUG=on \\

NAME="Happy Feet"

不推薦都方式,不易讀

ENV NODE_VERSION 7.2.0

其他指令使用:

RUN echo $NODE_VERSION

下列指令可以支持環境變量: ADD、COPY、ENV、EXPOSE、LABEL、USER、WORKDIR、VOLUME、STOPSIGNAL、ONBUILD。

RUN 指令

RUN 指令是在容器內執行 shell 命令,默認會是用 /bin/sh -c 的方式執行。

執行命令的兩種方式

  • RUN <command>(shell形式,該命令在shell中運行)/<command>
  • RUN ["executable", "param1", "param2"](exec形式)

之前說過,Dockerfile 中每一個指令都會建立一層,RUN 也不例外。每一個 RUN 的行為,就和剛才我們手工建立鏡像的過程一樣:新建立一層,在其上執行這些命令,執行結束後,commit 這一層的修改,構成新的鏡像。

注意:Union FS 是有最大層數限制的,比如 AUFS,曾經是最大不得超過 42 層,現在是不得超過 127 層。

所以,在使用 shell 方式,儘量多的使用續行符\\

RUN /bin/bash -c 'source $HOME/.bashrc; \\

echo $HOME'

寫 Dockerfile 的時候,要經常提醒自己,這並不是在寫 Shell 腳本,而是在定義每一層該如何構建。注意當使用 exec 方式時,需要明確指定 shell 路徑,否則變量可能不會生效。


分享到:


相關文章: