国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Docker中鏡像構建文件Dockerfile與相關命令的詳細介紹

2019-11-02 17:03:02
字體:
來源:轉載
供稿:網友

前言

使用docker build命令或使用Docker Hub的自動構建功能構建Docker鏡像時,都需要一個Dockerfile文件。Dockerfile文件是一個由一系列構建指令組成的文本文件,docker build命令會根據這些構建指令完成Docker鏡像的構建。本文將會介紹Dockerfile文件,及其中使用的構建指令。

1. Dockerfile文件使用

docker build命令會根據Dockerfile文件及上下文構建新Docker鏡像。構建上下文是指Dockerfile所在的本地路徑或一個URL(Git倉庫地址)。構建上下文環境會被遞歸處理,所以,構建所指定的路徑還包括了子目錄,而URL還包括了其中指定的子模塊。

構建鏡像

將當前目錄做為構建上下文時,可以像下面這樣使用docker build命令構建鏡像:

$ docker build .Sending build context to Docker daemon 6.51 MB...

說明:構建會在Docker后臺守護進程(daemon)中執行,而不是CLI中。構建前,構建進程會將全部內容(遞歸)發送到守護進程。大多情況下,應該將一個空目錄作為構建上下文環境,并將Dockerfile文件放在該目錄下。

在構建上下文中使用的Dockerfile文件,是一個構建指令文件。為了提高構建性能,可以通過.dockerignore文件排除上下文目錄下,不需要的文件和目錄。

Dockerfile一般位于構建上下文的根目錄下,也可以通過-f指定該文件的位置:

$ docker build -f /path/to/a/Dockerfile .

構建時,還可以通過-t參數指定構建成后,鏡像的倉庫、標簽等:

鏡像標簽

$ docker build -t shykes/myapp .

如果存在多個倉庫下,或使用多個鏡像標簽,就可以使用多個-t參數:

$ docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest .

在Docker守護進程執行Dockerfile中的指令前,首先會對Dockerfile進行語法檢查,有語法錯誤時會返回:

$ docker build -t test/myapp .Sending build context to Docker daemon 2.048 kBError response from daemon: Unknown instruction: RUNCMD

緩存

Docker 守護進程會一條一條的執行Dockerfile中的指令,而且會在每一步提交并生成一個新鏡像,最后會輸出最終鏡像的ID。生成完成后,Docker 守護進程會自動清理你發送的上下文。

Dockerfile文件中的每條指令會被獨立執行,并會創建一個新鏡像,RUN cd /tmp等命令不會對下條指令產生影響。

Docker 會重用已生成的中間鏡像,以加速docker build的構建速度。以下是一個使用了緩存鏡像的執行過程:

$ docker build -t svendowideit/ambassador .Sending build context to Docker daemon 15.36 kBStep 1/4 : FROM alpine:3.2 ---> 31f630c65071Step 2/4 : MAINTAINER SvenDowideit@home.org.au ---> Using cache ---> 2a1c91448f5fStep 3/4 : RUN apk update && apk add socat && rm -r /var/cache/ ---> Using cache ---> 21ed6e7fbb73Step 4/4 : CMD env | grep _TCP= | (sed 's/.*_PORT_/([0-9]*/)_TCP=tcp://///(.*/):/(.*/)/socat -t 100000000 TCP4-LISTEN:/1,fork,reuseaddr TCP4:/2:/3 /&/' && echo wait) | sh ---> Using cache ---> 7ea8aef582ccSuccessfully built 7ea8aef582cc

構建緩存僅會使用本地父生成鏈上的鏡像。如果不想使用本地緩存的鏡像,也可以通過--cache-from指定緩存。指定后將再不使用本地生成的鏡像鏈,而是從鏡像倉庫中下載。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遵化市| 南岸区| 平江县| 宽城| 徐州市| 珠海市| 惠水县| 遵化市| 镇平县| 晋中市| 镇坪县| 年辖:市辖区| 长泰县| 宿松县| 竹山县| 桦甸市| 台北市| 西畴县| 卫辉市| 上蔡县| 博客| 进贤县| 扎兰屯市| 荃湾区| 新乐市| 云霄县| 吉首市| 白水县| 沁水县| 呼图壁县| 沂水县| 晋州市| 庄河市| 肃宁县| 万山特区| 当涂县| 高淳县| 温州市| 慈溪市| 贞丰县| 广宁县|