docker?build與Dockerfile問題
docker build與Dockerfile
docker build常用命令
docker build . # 默認(rèn)使用當(dāng)前目錄下Dockerfile docker build . -f centosdockerfile # 其他名稱dockerfile,需要指定 docker build -t ghostwritten/app . # 指定鏡像名 docker build -t ghostwritten/app:1.0.2 -t ghostwritten/app:latest . # 指定多個tag # Dockerfile文件中的每條指令會被獨立執(zhí)行,并會創(chuàng)建一個新鏡像,Docker 會重用已生成的中間鏡像,以加速docker build的構(gòu)建速度,也可以通過--cache-from指定 docker build -t ghostwritten/app --cache-from 31f630c65071 . docker build -t ghostwritten/app --no-cache . # 不使用緩存
Dockerfile
FROM # 構(gòu)建自己所需鏡像使用的基礎(chǔ)鏡像 MAINTAINER # 即將構(gòu)建鏡像的作者,格式為: 姓名<郵箱> ENV # 設(shè)置環(huán)境變量 USER # 為RUN、CMD、ENTRYPOINT執(zhí)行命令指定運行用戶 WORKDIR # 鏡像啟動后在哪個工作目錄 RUN # 鏡像構(gòu)建時需要的命令 COPY # 拷貝文件或目錄到鏡像中 ADD # 需要向鏡像中注入的配置文件或者壓縮包等 VOLUME # 掛載的目錄,可以是匿名掛載或者具名掛載 EXPOSE # 聲明容器中運行的服務(wù)的端口 CMD # 容器啟動的時候運行的指令,若寫多個的話,只有一個生效,可以運行時在容器外部重新指定 ENTRYPOINT # 與CMD命令類似,但ENTRYPOINT可以在容器外追加命令 ONBUILD # 當(dāng)構(gòu)建一個被繼承DockerFile,這時會運行ONBUILD命令
docker build 指定dockerfile
docker build命令會根據(jù)Dockerfile文件及上下文構(gòu)建新Docker鏡像。
構(gòu)建上下文是指Dockerfile所在的本地路徑或一個URL(Git倉庫地址)。
構(gòu)建上下文環(huán)境會被遞歸處理,所以,構(gòu)建所指定的路徑還包括了子目錄,而URL還包括了其中指定的子模塊。
將當(dāng)前目錄做為構(gòu)建上下文時,可以像下面這樣使用docker build命令構(gòu)建鏡像:
$ docker build . Sending build context to Docker daemon ?6.51 MB ...
說明:構(gòu)建會在Docker后臺守護(hù)進(jìn)程(daemon)中執(zhí)行,而不是CLI中。構(gòu)建前,構(gòu)建進(jìn)程會將全部內(nèi)容(遞歸)發(fā)送到守護(hù)進(jìn)程。大多情況下,應(yīng)該將一個空目錄作為構(gòu)建上下文環(huán)境,并將Dockerfile文件放在該目錄下。
在構(gòu)建上下文中使用的Dockerfile文件,是一個構(gòu)建指令文件。為了提高構(gòu)建性能,可以通過.dockerignore文件排除上下文目錄下,不需要的文件和目錄。
Dockerfile一般位于構(gòu)建上下文的根目錄下,也可以通過-f指定該文件
$ docker build -f /path/to/a/Dockerfile .
構(gòu)建時,還可以通過-t參數(shù)指定構(gòu)建成后,鏡像的倉庫、標(biāo)簽等:
docker build -f Dockerfile.test -t image-train-test .
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用docker-compose.yml構(gòu)建鏡像的方法
docker-compose是docker提供的一個命令行工具,用來定義和運行由多個容器組成的應(yīng)用,這篇文章主要介紹了使用docker-compose.yml構(gòu)建鏡像的方法,需要的朋友可以參考下2023-05-05完美解決docker安裝mysql后Navicat連接不上的問題
這篇文章主要介紹了完美解決docker安裝mysql后Navicat連接不上的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03docker容器間互相訪問(docker bridge網(wǎng)絡(luò))
本文主要介紹了docker容器間互相訪問(docker bridge網(wǎng)絡(luò)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Docker學(xué)習(xí)之?dāng)?shù)據(jù)卷和Dockerfile詳解
在容器化應(yīng)用的開發(fā)和部署過程中,數(shù)據(jù)的持久化和共享是一個重要的問題,下面這篇文章主要給大家介紹了關(guān)于Docker學(xué)習(xí)之?dāng)?shù)據(jù)卷和Dockerfile的相關(guān)資料,需要的朋友可以參考下2024-04-04docker-compose java.net.UnknownHostException問題
這篇文章主要介紹了docker-compose java.net.UnknownHostException問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05