一、Dockerfile指令詳解
眾所周知,Dockerfile文件是利用基礎鏡像來構建新的鏡像的,這篇博客只記錄博主一些遇到過的問題和一些自己的理解(會持續更新...);需要了解Dockerfile的每個指令的話,可自行google一下,多的是,估計都是抄的。
2.RUN指令和CMD,ENTRYPOINT指令區別
查了下網上寫的,大部分都說RUN是docker build命令執行時運行的指令,而CMD,ENTRYPOINT是docker run命令執行時運行的指令,不僅很繞,而且抽象不好理解;在這里給兩個不同Dockerfile文件實例,來更具體理解這幾個指令區別:
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文件,在構建鏡像時,cd進入到Dockerfile文件所在路徑,使用docker build命令:docker build -t="new_nginx:new_latest" .
new_nginx:新鏡像名
new_latest:新鏡像版本
最后點號.
表示在當前目錄下尋找Dockerfile文件
這就解釋了,RUN指令是在執行docker build過程中被運行;
二、Dockerfile構建新鏡像問題
1.構建時的上下文問題
在官方文檔中,經常出現的一個術語叫做構建上下文,所謂上下文就是指構建所依賴環境;比如說,Dockerfile所在目錄就是一種上下文,用Dockerfile構建新鏡像時,會用到一些文件或者腳本,這些文件或腳本必須和Dockerfile文件在同一目錄;
編碼開發過程中也有上下文的概念,其含義上某些代碼運行時需要的變量、函數等;這兩個上下文的概念大體上含義是相同的——就是構建或運行時,所依賴的其他東西;
https://www.jianshu.com/p/5f79b573c2fb
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。