在構建docker容器時,應該盡量想辦法獲得體積更小的映象,因為傳輸和部署體積較小的映象速度更快。
\\ 但run語句總是會建立乙個新層,而且在生成映象之前還需要使用很多中間檔案,在這種情況下,該如何獲得體積更小的映象呢?
\\ 你可能已經注意到了,大多數dockerfiles都使用了一些奇怪的技巧:
\\
\from ubuntu\run apt-get update \u0026amp;\u0026amp; apt-get install vim
\\
為什麼使用\u0026amp;\u0026amp;?而不是使用兩個run語句代替呢?比如:
\\
\from ubuntu\run apt-get update\run apt-get install vim
\\
從docker 1.10開始,copy、add和run語句會向映象中新增新層。前面的示例建立了兩個層而不是乙個。
\\ 映象的層就像git的提交(commit)一樣。
\\ docker的層用於儲存映象的上一版本和當前版本之間的差異。就像git的提交一樣,如果你與其他儲存庫或映象共享它們,就會很方便。
\\ 但額外的層並不是沒有代價的。
\\ 層仍然會占用空間,你擁有的層越多,最終的映象就越大。git儲存庫在這方面也是類似的,儲存庫的大小隨著層數的增加而增加,因為git必須儲存提交之間的所有變更。
\\ 過去,將多個run語句組合在一行命令中或許是一種很好的做法,就像上面的第乙個例子那樣,但在現在看來,這樣做並不妥。
\\\\
當git儲存庫變大時,你可以選擇將歷史提交記錄壓縮為單個提交。
\\ 事實證明,在docker中也可以使用多階段構建達到類似的目的。
\\ 在這個示例中,你將構建乙個node.js容器。
\\ 讓我們從index.js開始:
\\\\
和package.json:
\\
\{\ \"name\": \"hello-world\
三個技巧,將Docker映象體積減小90
在構建docker容器時,應該盡量想辦法獲得體積更小的映象,因為傳輸和部署體積較小的映象速度更快。但run語句總是會建立乙個新層,而且在生成映象之前還需要使用很多中間檔案,在這種情況下,該如何獲得體積更小的映象呢?你可能已經注意到了,大多數dockerfiles都使用了一些奇怪的技巧 from ub...
css 的三個技巧
1 等比例縮小 imgbox imgbox img2 多行文字省略 單行 text 多行 text關於display webkit box 的講解 3 強制性換行 一般元素預設是white space normal 自動換行 但是如果是一些沒有空格的數字,字元,字母的話white space nor...
三個提公升網頁效能技巧
1 display屬性設定 先將元素設為display none 需要1次重排和重繪 然後對這個節點進行100次操作,最後再恢復顯示 需要1次重排和重繪 這樣一來,你就用兩次重新渲染,取代了可能高達100次的重新渲染。只在必要的時候,才將元素的display屬性為可見,因為不可見的元素不影響重排和重...