四 Dockerfile 關鍵詞和最佳實踐

2021-09-29 04:51:01 字數 2276 閱讀 7035

盡量使用官方的 image作為base image

e.g.,

from scratch

from centos:7

定義了 image 中的 metadata

e.g.,

label maintainer=「[email protected]

label version=「1.0.0」

label description=「this is ***」

每次執行一次 run 對於 image 都會生成新的一層,為了避免無用分層,合併多條命令成一行。

e.g.,

run yum update && yum install -y htop \

iotop

run apt-get update && apt-get install -y perl \

pwgen --no-install-recommends && rm -rf \

/var/lib/apt/lists/* #注意清理cache

run /bin/bash -c 『source ~/.bashrc; echo

$home』

e.g.,

workdir /root

workdir /test #如果目錄不存在會自動建立

workdir demo

run pwd #輸出結果應該是 /test/demo

e.g.,

盡量使用,增加可維護性

e.g.,

env mysql_version 5.6

run apt-get install -y mysql-server="$" \

&& rm -rf /var/lib/apt/lists/*

都是設定容器啟動後執行的命令

run yum install -y htop

cmd echo 「hello docker」

entrypoint echo 「hello docker」

run [「yum」, 「install」, 「-y」, 「htop」]

cmd ["/bin/echo", 「hello docker」]

entrypoint ["/bin/echo", 「hello docker」]

from entos

env name docker

cmd echo 「hello $name」

如果執行 dockers run -it *** /bin/bash,則hello docker不會輸出。

一般會乙個shell指令碼作為entrypoint

… …

copy docker-entrypoint.sh /usr/local/bin/

entrypoint [「docker-entrypoint.sh」]

expose 27017

cmd [「mongod」]

… …

run 執行的時間點不同在 build 階段,cmd 在 docker run 時執行

區別:

from centos

env name docker

entrypoint echo 「hello $name」

容器build後執行會列印出hello docker

from centos

env name docker

entrypoint ["/bin/echo", 「hello $name」]

列印出hello $name

如果想列印出hello docker,需要使用以下方式

entrypoint ["/bin/bash", 「-c」, 「echo hello $name」]

官方的 dockerfile 案例:

關鍵詞密度

百科名片 目錄 隱藏 什麼是增加keywords密度的最好方式 關鍵字堆砌 keyword stuffing 的定義 關鍵字堆砌 keyword stuffing 關鍵字堆砌 keyword stuffing 是指在乙個網頁中非常密集地放置關鍵字。一般說來,如果關鍵字的出現過於頻繁,就會蓋過網頁的其...

關鍵詞提取

隱含主題模型優缺點 隱含主題模型可以很好地表示文件和標籤主題,有效降低標籤系統中噪音的影響。但是另外乙個方面,隱含主題相對於詞而言粒度較粗,對於具體實體 如人名 地名 機構名和產品名 的標籤沒有辦法做到很好地區分,因此對這些細粒度標籤推薦效果較差 典型的聚類演算法 層次聚類 hierarchical...

常用關鍵詞

保留字是指在程式語言中,暫時還沒有賦予含義,不過也不能用於定義變數名和類名,因為後續再公升級過程中可能會用到的單詞。final 繼承的出現提高了 的復用性,並方便開發。但隨之也有問題,有些類在描述完之後,不想被繼承,或者有些類中的部分方法功能是固定的,不想讓子類重寫。final修類類不可以被繼承,但...