亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker中忽略文件的實(shí)現(xiàn)

 更新時(shí)間:2023年10月09日 11:02:41   作者:極客  
Docker忽略文件是指在Docker鏡像構(gòu)建過程中,用于忽略指定文件或目錄的一種機(jī)制,本文主要介紹了Docker中忽略文件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

簡介

在這篇文章中,我們將學(xué)習(xí)docker中的忽略文件。如何創(chuàng)建一個(gè)忽略文件,以及如何用各種方法將文件和文件夾添加到忽略文件中。所有先決條件的知識(shí)都以逐步的方式提到。在不了解代碼行業(yè)對(duì)ignore文件的要求的情況下,不要直接跳到實(shí)現(xiàn)。

什么是被忽略的文件

忽略在不同系統(tǒng)中創(chuàng)建的文件,比如在Git倉庫和Dockerifle中。這些文件有助于排除一些文件和目錄在輸出中被使用或復(fù)制。dockerfile的輸出是圖像,而git的輸出可能是提交。DevOps中最常用的一些忽略文件的例子是 “gitignore “和 “dockerignore”。

要忽略的文件類型

主要任務(wù)是忽視事物。這些東西可以是不同類型的。比如它可以是python中的程序文件,也可以是ReactJS應(yīng)用目錄中的子目錄。所有這些文件都在下面的列表中提到。

  • Directory
  • 文件 – 文本或程序文件
  • 子目錄
  • .dockerignore本身

忽略這些文件的必要性是因?yàn)槲覀冊(cè)谧罱K產(chǎn)品中不再需要這些文件。這些文件只需要在主機(jī)上。

方法

在本節(jié)中,我們將學(xué)習(xí)如何通過將不同類型的文件添加到dockerignore文件中來排除它們。

所有要在dockerignore中出現(xiàn)的文件都應(yīng)該提到docker context目錄。Docker上下文是指所有需要添加到鏡像中的有用文件所在的目錄路徑。大多數(shù)情況下,我們?cè)跇?gòu)建鏡像時(shí)使用.(點(diǎn))作為docker context。

創(chuàng)建一個(gè)”.dockerignore “文件

.dockerignore “應(yīng)該在你的Dockerfile存在的地方創(chuàng)建,否則它將無法工作。使用下面的命令來創(chuàng)建和排除各種類型的文件。

$touch .dockerignore

我們已經(jīng)創(chuàng)建了一個(gè)目錄結(jié)構(gòu),用于解釋所有這些方法。

$tree -la

輸出

.
├── dir1
├── dir2
├── dir3
│ ├── dir3_1
│ │ └── file_dir3_1.txt
│ ├── dir3_2
│ ├── file1_dir3.txt
│ └── file2_dir3.py
├── Dockerfile
├── .dockerignore
├── file1.txt
├── file2.sh
├── file3.py
├── no_ex1
└── No_ex2

5 directories, 10 files

打開ignore文件,從上面的目錄結(jié)構(gòu)中添加各種文件。

$nano .dockerignore

有一些規(guī)則可以在docker ignore文件中添加不同種類的文件、目錄和注釋。

在dockerignore文件中添加一個(gè)注釋

在開始注釋的時(shí)候使用#,會(huì)將該行視為一個(gè)注釋。

#This is a comment in the .dockerignore file

忽略docker上下文或根目錄級(jí)別的目錄

dir1
dir2

這將忽略存在于docker上下文根層的目錄(dir1 & dir2)。參考一下上面的目錄結(jié)構(gòu)。

忽略所有的文件和目錄

排除所有名稱中帶有 “file “的文件和目錄。這些文件將只來自根目錄。

file*

忽略docker上下文中最多一級(jí)的子目錄

忽略根目錄下任何子目錄中的文件以及目錄。

#using */ to go one level down
*/file1_dir3.txt

忽略一個(gè)子目錄,直到docker上下文的兩層以下。

這與上述方法非常相似。

#using */*/ to go two level down
*/*/file_dir3_1.txt

要重新包括一個(gè)文件

有一些特殊情況,當(dāng)我們想包括一個(gè)先前被排除在外的特定文件。

*.txt
!myfile.txt

假設(shè)你正在創(chuàng)建一個(gè)Python容器鏡像。根目錄包含了所有來自不同貢獻(xiàn)者的python程序,所以你不能刪除它們,你只能使用這個(gè)根目錄。你可以執(zhí)行下面的例子來排除所有的Python程序,然后重新包含你的Python程序文件。

第1步 – 假設(shè)根目錄中充滿了pythons文件

Prg1.py. Prg2.py, Prg3.py …………..and myprogram.py

第2步 − 創(chuàng)建一個(gè).dockerignore文件,如下所示

#ignore all the python program files
*.py
#reinclude your python program file
!myprogram.py

這個(gè)過程會(huì)更快,而且不需要將不需要的東西COPY/ADD到docker容器鏡像中。

實(shí)現(xiàn)

這里我們要?jiǎng)?chuàng)建一個(gè)完整的環(huán)境,使用Dockerfile、.dockerignore,并使用這些文件構(gòu)建一個(gè)容器鏡像。使用的目錄結(jié)構(gòu)與方法部分中提到的相同。

.
├── dir1
├── dir2
├── dir3
│ ├── dir3_1
│ │ └── file_dir3_1.txt
│ ├── dir3_2
│ ├── file1_dir3.txt
│ └── file2_dir3.py
├── Dockerfile
├── .dockerignore
├── file1.txt
├── file2.sh
├── file3.py
├── no_ex1
└── No_ex2

第1步 − 創(chuàng)建一個(gè)Docker文件并添加代碼。

$nano Dockerfile

輸入

#for the base image we are using busybox
FROM busybox:latest
#set a working directory
WORKDIR /my_context_directory
#copy everything from the build context to the working directory of the
#image
COPY . .
# list all the copied items
RUN ls -l

保存該文件。

第2步 − 創(chuàng)建一個(gè).dockerignore文件

$nano .dockerignore

輸入

#exclude the file_dir3_1.txt
file_dir3_1.txt
#exclude file from the root
file3.py
#exclude a directory one level down
*/dir3_2

保存該文件。

第3步 − 構(gòu)建鏡像并檢查構(gòu)建輸出

$docker build -t test_ignore .

輸出

Sending build context to Docker daemon 9.728kB
Step 1/4 : FROM busybox:latest
   ---> 9d5226e6ce3f
Step 2/4 : WORKDIR /my_context_directory
   ---> Running in 49d65f57621d
Removing intermediate container 49d65f57621d
   ---> 386c30f8f511
Step 3/4 : COPY . .
   ---> 75f65dace2be
Step 4/4 : RUN ls -l
   ---> Running in bd8bbec7d3f9
total 12
-rw-rw-r-- 1 root root 0 Dec 9 03:47 No_ex2
drwxrwxr-x 2 root root 4096 Dec 9 03:47 dir1
drwxrwxr-x 2 root root 4096 Dec 9 03:47 dir2
drwxrwxr-x 3 root root 4096 Dec 9 03:48 dir3
-rw-rw-r-- 1 root root 0 Dec 9 03:46 file1.txt
-rw-rw-r-- 1 root root 0 Dec 9 03:46 file2.sh
-rw-rw-r-- 1 root root 0 Dec 9 03:47 no_ex1
Removing intermediate container bd8bbec7d3f9
   ---> 084bb699260f
Successfully built 084bb699260f
Successfully tagged test_ignore:latest

輸出顯示,除了dockerignore文件中的文件外,所有的文件都被復(fù)制到了容器鏡像中。

總結(jié)

在這篇文章中,我們對(duì)”.dockerignore “文件進(jìn)行了360度的全面探討。排除、包括,以及這個(gè)文件的重要性都被清楚地說明了。為了親身體驗(yàn)這個(gè)主題,我們創(chuàng)建了不同的環(huán)境,并通過上述方法來實(shí)現(xiàn)。

到此這篇關(guān)于Docker中忽略文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker 忽略文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mac上使用docker搭建gitlab全過程

    mac上使用docker搭建gitlab全過程

    本文詳細(xì)介紹了在Mac上使用Docker搭建GitLab的過程,包括安裝Docker、拉取GitLab鏡像、啟動(dòng)容器、訪問和配置GitLab等步驟,同時(shí),還提供了重置管理員密碼的方法,幫助解決常見問題
    2024-11-11
  • Docker化Spring Boot應(yīng)用的實(shí)踐

    Docker化Spring Boot應(yīng)用的實(shí)踐

    本文主要介紹了Docker化Spring Boot應(yīng)用的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Linux系統(tǒng)Docker 部署 ASP.NET Core應(yīng)用的流程分析

    Linux系統(tǒng)Docker 部署 ASP.NET Core應(yīng)用的流程分析

    這篇文章主要介紹了Linux系統(tǒng)Docker 部署 ASP.NET Core應(yīng)用的流程分析,在操作過程中小編遇到很多問題,下面把我的經(jīng)驗(yàn)及處理方法分享到腳本之家平臺(tái),需要的朋友參考下吧
    2021-06-06
  • 解讀docker運(yùn)行時(shí)-itd參數(shù)是什么意思

    解讀docker運(yùn)行時(shí)-itd參數(shù)是什么意思

    在Docker中,-itd參數(shù)組合用于在后臺(tái)運(yùn)行一個(gè)交互式容器,同時(shí)保持標(biāo)準(zhǔn)輸入和分配偽終端,這種方式適合需要在后臺(tái)運(yùn)行容器并保持交互能力的場景
    2025-03-03
  • 使用Docker進(jìn)行node開發(fā)時(shí)實(shí)現(xiàn)熱加載功能

    使用Docker進(jìn)行node開發(fā)時(shí)實(shí)現(xiàn)熱加載功能

    這篇文章主要介紹了使用docker進(jìn)行vue、react或者node開發(fā)時(shí)實(shí)現(xiàn)熱加載功能,即宿主機(jī)文件修改之后實(shí)時(shí)刷新或者實(shí)時(shí)重啟服務(wù),文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-09-09
  • 深入理解 Docker 數(shù)據(jù)卷(Data Volume)

    深入理解 Docker 數(shù)據(jù)卷(Data Volume)

    本文詳細(xì)介紹了Docker數(shù)據(jù)卷(DataVolume)的概念、作用、使用命令、掛載方式以及最佳實(shí)踐,數(shù)據(jù)卷是Docker中實(shí)現(xiàn)數(shù)據(jù)持久化和共享的關(guān)鍵機(jī)制之一,通過本文的學(xué)習(xí),讀者可以更好地掌握數(shù)據(jù)卷的使用方法,從而在容器化應(yīng)用中進(jìn)行有效的數(shù)據(jù)管理
    2024-11-11
  • Docker鏡像上傳到阿里云的步驟詳解

    Docker鏡像上傳到阿里云的步驟詳解

    本篇文章主要介紹了Docker鏡像上傳到阿里云的步驟詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • docker部署微信小程序自動(dòng)構(gòu)建發(fā)布和更新的詳細(xì)步驟

    docker部署微信小程序自動(dòng)構(gòu)建發(fā)布和更新的詳細(xì)步驟

    通過 Jenkins 和 Docker 部署微信小程序,并實(shí)現(xiàn)自動(dòng)構(gòu)建、發(fā)布和版本更新,主要涉及到幾個(gè)步驟,下面給大家分享docker部署微信小程序自動(dòng)構(gòu)建發(fā)布和更新的詳細(xì)步驟,感興趣的朋友一起看看吧
    2024-12-12
  • 如何清理docker的overlay2 目錄

    如何清理docker的overlay2 目錄

    本文介紹了如何清理Docker的overlay2目錄,包括確認(rèn)overlay2目錄的位置、清理未使用的容器和鏡像、手動(dòng)清理overlay2目錄、清理日志文件、限制日志大小以及檢查磁盤空間,感興趣的朋友一起看看吧
    2025-03-03
  • Docker部署rabbitmq遇到的兩個(gè)問題

    Docker部署rabbitmq遇到的兩個(gè)問題

    當(dāng)使用docker部署rabbitmq時(shí)遇到兩個(gè)問題,訪問交換機(jī)時(shí)報(bào)錯(cuò),另一種是訪問channel時(shí)報(bào)錯(cuò),本文給大家分享解決方案,感興趣的朋友跟隨小編一起看看吧
    2021-07-07

最新評(píng)論