shipyard中文版安裝教程(附安裝指令碼)
阿新 • • 發佈:2020-11-27
Dockerfile是什麼?
用於構建映象的文字檔案。
Dockerfile基本內容
FROM nginx 定製一個基於nginx的映象
RUN:
shell格式:
RUN 命令列命令 等同於在終端操作的shell命令
exec格式:
RUN ["可執行檔案","引數1","引數2"] 等價於 RUN 可執行檔案 引數1 引數2
ps:Dockerfile 的指令每執行一次都會在 docker 上新建一層。所以過多無意義的層,會造成映象膨脹過大。 FROM centos RUN yum install wget RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" RUN tar -xvf redis.tar.gz 以上執行會建立 3 層映象。可簡化為以下格式: FROM centos RUN yum install wget \ && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \ && tar -xvf redis.tar.gz
如上,以 && 符號連線命令,這樣執行後,只會建立 1 層映象。
構建映象
docker build -t nginx:v3 .
上下文路徑
有提到指令最後一個 . 是上下文路徑,那麼什麼是上下文路徑呢?
上下文路徑,是指 docker 在構建映象,有時候想要使用到本機的檔案(比如複製),docker build 命令得知這個路徑後,會將路徑下的所有內容打包。
解析:由於 docker 的執行模式是 C/S。我們本機是 C,docker 引擎是 S。實際的構建過程是在 docker 引擎下完成的,所以這個時候無法用到我們本機的檔案。這就需要把我們本機的指定目錄下的檔案
一起打包提供給 docker 引擎使用。
如果未說明最後一個引數,那麼預設上下文路徑就是 Dockerfile 所在的位置。
ps:上下文路徑下不要放無用的檔案,因為會一起打包傳送給 docker 引擎,如果檔案過多會造成過程緩慢。
常用命令
CMD
類似於 RUN 指令,用於執行程式,但二者執行的時間點不同:
CMD 在docker run 時執行。
RUN 是在 docker build。