您好,登錄后才能下訂單哦!
一、Dockerfile指令詳解
眾所周知,Dockerfile文件是利用基礎(chǔ)鏡像來構(gòu)建新的鏡像的,這篇博客只記錄博主一些遇到過的問題和一些自己的理解(會持續(xù)更新...);需要了解Dockerfile的每個指令的話,可自行g(shù)oogle一下,多的是,估計都是抄的。
2.RUN指令和CMD,ENTRYPOINT指令區(qū)別
查了下網(wǎng)上寫的,大部分都說RUN是docker build命令執(zhí)行時運行的指令,而CMD,ENTRYPOINT是docker run命令執(zhí)行時運行的指令,不僅很繞,而且抽象不好理解;在這里給兩個不同Dockerfile文件實例,來更具體理解這幾個指令區(qū)別:
1)RUN指令的Dockerfile文件.
#version 1.0.0.1
FROM nginx
MAINTAINER XXXXXX@163.COM
RUN apt-get update
RUN apt-get install openssh-server
EXPOSE 22
像上面這種帶有RUN指令的Dockerfile文件,在構(gòu)建鏡像時,cd進(jìn)入到Dockerfile文件所在路徑,使用docker build命令:docker build -t="new_nginx:new_latest" .
new_nginx:新鏡像名
new_latest:新鏡像版本
最后點號.
表示在當(dāng)前目錄下尋找Dockerfile文件
這就解釋了,RUN指令是在執(zhí)行docker build過程中被運行;
二、Dockerfile構(gòu)建新鏡像問題
1.構(gòu)建時的上下文問題
在官方文檔中,經(jīng)常出現(xiàn)的一個術(shù)語叫做構(gòu)建上下文,所謂上下文就是指構(gòu)建所依賴環(huán)境;比如說,Dockerfile所在目錄就是一種上下文,用Dockerfile構(gòu)建新鏡像時,會用到一些文件或者腳本,這些文件或腳本必須和Dockerfile文件在同一目錄;
編碼開發(fā)過程中也有上下文的概念,其含義上某些代碼運行時需要的變量、函數(shù)等;這兩個上下文的概念大體上含義是相同的——就是構(gòu)建或運行時,所依賴的其他東西;
https://www.jianshu.com/p/5f79b573c2fb
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。