雲計算核心技術Docker教程:dockerignore文件介紹

2020-12-13 TechWeb

在docker CLI將上下文發送到docker守護程序之前,它會在上下文的根目錄中查找名為.dockerignore的文件。如果此文件存在,則CLI會修改上下文以排除與其中的模式匹配的文件和目錄。這有助於避免不必要地將大型文件或敏感文件和目錄發送到守護程序,並避免使用ADD或將它們添加到映像中COPY。

CLI將.dockerignore文件解釋為以換行符分隔的模式列表,類似於Unix Shell的文件組。為了匹配,上下文的根被認為是工作目錄和根目錄。例如,路徑 /foo/bar和foo/bar兩個排除命名的文件或目錄bar 的foo子目錄PATH或位於Git倉庫的根URL。兩者都不排除其他任何東西。

如果.dockerignore文件中的一行以第#1列開頭,則該行將被視為注釋,並且在CLI解釋之前將被忽略。

這是一個示例.dockerignore文件:

# comment

*/temp*

*/*/temp*

temp?

此文件導致以下生成行為:

使用Go的filepath.Match規則進行匹配 。預處理步驟使用Go的filepath.Clean除去開頭和結尾的空格,並消除.和..元素 。預處理後空白的行將被忽略。

除了Go的filepath.Match規則外,Docker還支持一個特殊的通配符字符串**,該字符串匹配任意數量的目錄(包括零個)。例如,**/*.go將排除.go 在所有目錄(包括構建上下文的根目錄)中找到的所有以結尾結尾的文件。

以!(感嘆號)開頭的行可用於排除例外。以下是.dockerignore使用此機制的示例文件:

*.md

!README.md

除 README.md上下文之外,所有.md文件都排除在外。

相關焦點

  • 雲計算核心技術Docker教程:.dockerignore文件介紹
    在docker CLI將上下文發送到docker守護程序之前,它會在上下文的根目錄中查找名為.dockerignore的文件。如果此文件存在,則CLI會修改上下文以排除與其中的模式匹配的文件和目錄。
  • 雲計算核心技術Docker教程:Docker鏡像使用
    當運行容器時,使用的鏡像如果在本地中不存在,docker 就會自動從 docker 鏡像倉庫中下載,默認是從 Docker Hub 公共鏡像源下載。我們可以使用 docker images 來列出本地主機上的鏡像。
  • 雲計算核心技術Docker教程:Docker容器使用
    docker 客戶端非常簡單 ,我們可以直接輸入 docker 命令來查看到 Docker 客戶端的所有命令選項。可以通過命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。
  • 雲計算核心技術Docker教程: Docker 安裝 Redis
    本文介紹通過docker安裝redis。1.我們用 docker search redis 命令來查看可用版本:2.取最新版的 Redis 鏡像,這裡我們拉取官方的最新版本的鏡像:$ docker pull redis:latest
  • 雲計算核心技術Docker教程:Docker Machine 使用 - TechWeb
    使用docker-machine命令,可以啟動、審查、停止、重啟託管的docker 也可以升級Docker客戶端和守護程序並配置docker客戶端和宿主機通信。Docker Machine 也可以集中管理所以得docker主機。
  • 雲計算核心技術Docker教程:info/version命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中我們可以使用info命令 顯示 Docker 系統信息,包括鏡像和容器數,通過version命令顯示 Docker 版本信息。示例docker info : 顯示 Docker 系統信息,包括鏡像和容器數語法docker info [OPTIONS]OPTIONS說明:-f :指定返回值的模板文件
  • 雲計算核心技術Docker教程:docker-compose 常用命令介紹
    通過 Compose,您可以使用 YML 文件來配置應用程式需要的所有服務。然後,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。在下載安裝Docker Compose後通過創建 Dockerfile 文件就可以使用Docker Compose命令構建和啟動應用了,本文主要介紹docker-compose的常用命令。
  • 雲計算核心技術Docker教程:Compose使用
    通過 Compose,您可以使用 YML 文件來配置應用程式需要的所有服務。然後,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。Compose 使用的三個步驟:1.使用 Dockerfile 定義應用程式的環境。
  • 雲計算核心技術Docker教程:run 命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中,我們可以直接輸入 docker 命令來查看到 Docker 客戶端的所有命令選項。可以通過命令 docker command help 更深入的了解指定的 Docker 命令使用方法。
  • 雲計算核心技術Docker教程:docker Stack介紹
    docker stack和docker-compose使用方式相同,但是為什麼引入docker stack技術呢。文件中定義的 services、volumes 、networks資源。docker stack的能力來源自docker引擎原生支持,你不需要安裝額外工具包去啟動docker 容器堆棧(docker stack 是docker swarm的一部分)。
  • 雲計算核心技術Docker教程:rm/rmi命令詳解
    在docker客戶端命令行中我們可以使用rm刪除一個或多個容器,使用rmi刪除本地一個或多少鏡像。示例:docker rm :刪除一個或多個容器。例如,強制刪除容器 db01、db02,命令如下:$ docker rm -f db01 db02移除容器 nginx01 對容器 db01 的連接,連接名 db:$ docker rm -l db刪除容器 nginx01, 並刪除容器掛載的數據卷:$ docker rm -v nginx01刪除所有已經停止的容器
  • 雲計算核心技術Docker教程:pull/push命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中我們可以使用pull從鏡像倉庫中拉取或者更新指定鏡像,使用push將本地的鏡像上傳到鏡像倉庫。示例:docker pull : 從鏡像倉庫中拉取或者更新指定鏡像語法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]OPTIONS說明:
  • 雲計算核心技術Docker教程:Docker Compose的pull和push命令詳解
    Docker-Compose pull命令可以拉取docker-compose.yml或者docker-stack.yml文件中定義的服務關聯的鏡像,Docker-Compose push命令可以將服務鏡像推送到registry/repository中。
  • 雲計算核心技術Docker教程:docker-compose up命令介紹
    通過 Compose,您可以使用 YML 文件來配置應用程式需要的所有服務。然後,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。在下載安裝Docker Compose後通過創建 Dockerfile 文件就可以使用Docker Compose命令構建和啟動應用了,本文主要介紹docker-compose up命令。
  • 雲計算核心技術Docker教程:Docker Compose指定單個compose文件
    docker-compose可以使用該-f標誌通過命令行或通過在外殼程序或環境文件中設置COMPOSE_FILE環境變量來指定不在當前目錄中的Compose文件的路徑。
  • 雲計算核心技術Docker教程:Dockerfile文件CMD命令詳解
    Dockerfile文件ADD指令是用於指定默認的容器主進程的啟動命令。Docker 不是虛擬機,容器就是進程。既然是進程,那麼在啟動容器的時候,需要指定所運行的程序及參數。
  • 雲計算核心技術Docker教程:Dockerfile指令詳解
    來源:TechWeb.com.cnDockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。COPY複製指令,從上下文目錄中複製文件或者目錄到容器裡指定路徑。COPY [chown=:] ["",... ""][chown=:]:可選參數,用戶改變複製到容器內文件的擁有者和屬組。:源文件或者源目錄,這裡可以是通配符表達式,其通配符規則要滿足 Go 的 filepath.Match 規則。
  • 雲計算核心技術Docker教程:Dockerfile文件EXPOSE命令詳解
    Dockerfile文件EXPOSE 指令是聲明運行時容器提供服務埠,這只是一個聲明,在運行時並不會因為這個聲明應用就會開啟這個埠的服務。在 Dockerfile 中寫入這樣的聲明有兩個好處,一個是幫助鏡像使用者理解這個鏡像服務的守護埠,以方便配置映射;另一個用處則是在運行時使用隨機埠映射時,也就是 docker run -P 時,會自動隨機映射 EXPOSE 的埠。
  • 雲計算核心技術Docker教程:build 命令詳解
    來源:TechWeb.com.cnDockerfile是一個用來構建鏡像的文本文件,在docker客戶端命令行中我們可以通過docker build 命令使用Dockerfile文件來創建鏡像。cpuset-mems :指定使用的內存 id;disable-content-trust :忽略校驗,默認開啟;-f :指定要使用的Dockerfile路徑;force-rm :設置鏡像過程中刪除中間容器;isolation :使用容器隔離技術
  • 雲計算核心技術Docker教程:Dockerfile文件ENTRYPOINT命令詳解
    Dockerfile文件ENTRYPOINT指令和 CMD 一樣,都是在指定容器啟動程序及參數。ENTRYPOINT 在運行時也可以替代,不過比 CMD 要略顯繁瑣,需要通過 docker run 的參數 --entrypoint 來指定。