Docker映象構建上下文
阿新 • • 發佈:2018-12-19
來自docker技術入門與實踐啦
在docker build 命令的最後一行,會有一個 .
比如
docker build -t nginx:v3 .
雖然這個 . 的確表示當前目錄,但是並不是指定Dockerfile的所在路徑,而是指定上下文路徑context,理解這個context
首先要理解docker build的工作原理,Docker在執行時分為Docker引擎(服務端的守護程序啦)和客戶端工具;
Docker的引擎提供了REST API,稱為Docker Remote API,如docker命令這樣的客戶端工具,就是通過這組API與Docker引擎
互動從而完成各種功能,表面上在本地執行的各種docker功能都是使用的遠端呼叫形式在服務端(docker引擎)完成,這種
c/s設計,能夠讓我們輕易的遠端操控遠端伺服器的Docker引擎;
所以啦,docker build命令構建映象,其實並非在本地,而是在服務端,即Docker引擎中構建的;
在這種c/s服務架構中,用上下文context來讓服務端獲得本地檔案,
構建的時候,使用者指定構建映象上下文的路徑,docker build命令得知這個路徑後,會將路徑下的所有內容打包,然後上傳到docker引擎,服務端的docker引擎收到上下文包後,開啟就會得到構建映象所需的一切檔案,一把來說,應該將Dockerfile置於一個空目錄下,或者專案根目錄下,如果該目錄下沒有所需檔案,那麼應該把所需檔案複製一份過來,可以用.dockerignore檔案來提出不需要作為上下文傳遞給Docker引擎的;