最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker?build?和compose?學(xué)習(xí)筆記

 更新時(shí)間:2025年07月23日 10:14:58   作者:AI算法網(wǎng)奇  
Docker?build構(gòu)建鏡像,docker-compose?up?-d啟動(dòng)多容器應(yīng)用,前者需Dockerfile,后者需docker-compose.yml,Compose可自動(dòng)調(diào)用Build或使用現(xiàn)有鏡像,協(xié)同提升開發(fā)效率與環(huán)境一致性,本文給大家分享docker?build?和compose?學(xué)習(xí)筆記,感興趣的朋友一起看看吧

docker build 和 docker compose up -d 是 Docker 生態(tài)系統(tǒng)中兩個(gè)不同的命令,用于不同的場(chǎng)景。以下是它們的核心區(qū)別:

docker build 筆記

docker build -t my-app:1.0 . 

是的,docker build -t my-app:1.0 . 命令會(huì)自動(dòng)讀取當(dāng)前目錄下的 Dockerfile(文件名必須嚴(yán)格為 Dockerfile,大小寫敏感)。以下是詳細(xì)說(shuō)明:

1. 路徑解析

  • . 表示“當(dāng)前目錄”:
    命令最后的 . 是構(gòu)建上下文(Build Context)的路徑,Docker 會(huì)將該目錄下的所有文件(遞歸)發(fā)送給 Docker 守護(hù)進(jìn)程(daemon),并在其中查找 Dockerfile

    • 例如:若在 /home/user/project 下執(zhí)行命令,則默認(rèn)讀取 /home/user/project/Dockerfile。

  • 自定義 Dockerfile 路徑:
    如果 Dockerfile 不在當(dāng)前目錄,或使用了其他文件名,需通過(guò) -f 指定:

docker build -t my-app:1.0 -f ./subdir/CustomDockerfile .
  • 此時(shí)仍以 .(當(dāng)前目錄)為構(gòu)建上下文,但使用指定文件作為構(gòu)建指令。

2. 關(guān)鍵注意事項(xiàng)

  1. Dockerfile 必須存在:
    如果當(dāng)前目錄沒(méi)有 Dockerfile,會(huì)報(bào)錯(cuò):

ERROR: Cannot locate specified Dockerfile: Dockerfile

  1. 構(gòu)建上下文的影響

    • Docker 會(huì)將上下文目錄的所有文件發(fā)送給守護(hù)進(jìn)程(可能導(dǎo)致傳輸量大)。

    • 通過(guò) .dockerignore 文件可排除不需要的文件(類似 .gitignore)。

  2. 鏡像標(biāo)簽(-t):
    -t my-app:1.0 為生成的鏡像指定名稱和標(biāo)簽,后續(xù)可通過(guò) docker run my-app:1.0 運(yùn)行。

2.docker compose up -d

作用
根據(jù) docker-compose.yml 文件啟動(dòng)和管理多容器應(yīng)用(包括構(gòu)建鏡像、創(chuàng)建網(wǎng)絡(luò)、掛載卷等)。

關(guān)鍵特點(diǎn)

  • 輸入:需要一個(gè) docker-compose.yml 文件(定義多容器服務(wù)的配置)。

  • 輸出:?jiǎn)?dòng)一個(gè)或多個(gè)容器(基于現(xiàn)有鏡像或自動(dòng)構(gòu)建鏡像)。

  • 典型用途

    • 啟動(dòng)復(fù)雜的多服務(wù)應(yīng)用(如 Web + 數(shù)據(jù)庫(kù) + Redis)。

    • 管理容器間的依賴關(guān)系和網(wǎng)絡(luò)配置。

    • 一鍵啟停整個(gè)應(yīng)用環(huán)境。

示例

docker compose up -d  # 根據(jù) docker-compose.yml 啟動(dòng)所有服務(wù)(-d 表示后臺(tái)運(yùn)行)

核心區(qū)別對(duì)比

特性docker builddocker compose up -d
作用對(duì)象單個(gè)鏡像多容器應(yīng)用(服務(wù)、網(wǎng)絡(luò)、卷等)
輸入文件Dockerfiledocker-compose.yml
輸出結(jié)果生成鏡像啟動(dòng)容器(可能包含構(gòu)建鏡像的步驟)
典型場(chǎng)景構(gòu)建自定義鏡像部署完整的多服務(wù)環(huán)境
依賴關(guān)系不涉及其他容器可定義服務(wù)間的依賴(如數(shù)據(jù)庫(kù)先啟動(dòng))
網(wǎng)絡(luò)/卷管理無(wú)自動(dòng)創(chuàng)建網(wǎng)絡(luò)和卷

常見工作流

  1. 開發(fā)階段

    • 用 docker build 構(gòu)建鏡像。

    • 用 docker compose up 測(cè)試多服務(wù)交互。

  2. 生產(chǎn)部署

    • 直接使用 docker compose up -d(如果 docker-compose.yml 中已定義鏡像來(lái)源)。

  3. 調(diào)試

    • docker build 失敗時(shí)檢查 Dockerfile。

    • docker compose up 失敗時(shí)檢查服務(wù)配置或日志。

補(bǔ)充說(shuō)明

  • 如果 docker-compose.yml 中包含 build 字段,docker compose up 會(huì)自動(dòng)構(gòu)建鏡像(相當(dāng)于隱式調(diào)用 docker build)。

  • -d 參數(shù)表示“后臺(tái)運(yùn)行”(detached mode),不加則會(huì)附著到容器日志輸出。

  • 推薦組合使用:先 build 測(cè)試鏡像,再通過(guò) compose 編排完整環(huán)境。

1. 功能區(qū)別

命令/工具docker builddocker compose
核心職責(zé)構(gòu)建鏡像(從 Dockerfile 生成鏡像)編排多容器應(yīng)用(定義和運(yùn)行多服務(wù)環(huán)境)
輸入文件Dockerfiledocker-compose.yml
操作對(duì)象單個(gè)鏡像多個(gè)容器、網(wǎng)絡(luò)、存儲(chǔ)卷等資源
典型場(chǎng)景將代碼打包成可運(yùn)行的鏡像一鍵啟動(dòng)完整的應(yīng)用棧(如 Web + DB + Redis)

2. 協(xié)作關(guān)系

場(chǎng)景 1:Compose 自動(dòng)調(diào)用 Build

如果 docker-compose.yml 中定義了 build 字段,運(yùn)行 docker compose up 時(shí)會(huì)自動(dòng)觸發(fā) docker build

services:
  webapp:
    build: .  # 根據(jù)當(dāng)前目錄的 Dockerfile 構(gòu)建鏡像
    ports:
      - "8000:8000"

執(zhí)行命令:

docker compose up -d  # 自動(dòng)構(gòu)建鏡像并啟動(dòng)容器

場(chǎng)景 2:先 Build 后 Compose

  1. 手動(dòng)構(gòu)建鏡像

docker build -t my-app:1.0 .
  1. 在 Compose 中引用已有鏡像

services:
  webapp:
    image: my-app:1.0  # 直接使用已構(gòu)建的鏡像
    ports:
      - "8000:8000"
  1. 啟動(dòng)服務(wù)

docker compose up -d

3. 關(guān)鍵區(qū)別

維度docker builddocker compose
層級(jí)底層命令(鏡像構(gòu)建)高層工具(應(yīng)用編排)
依賴只需要 Dockerfile依賴 docker-compose.yml 和鏡像
是否管理容器是(創(chuàng)建、啟動(dòng)、停止容器)
網(wǎng)絡(luò)/卷不涉及自動(dòng)管理網(wǎng)絡(luò)和存儲(chǔ)卷

4. 為什么需要協(xié)作?

  • 開發(fā)效率
    docker compose 通過(guò)一個(gè)命令即可完成鏡像構(gòu)建(如果需要)和容器啟動(dòng),簡(jiǎn)化流程。

  • 環(huán)境一致性
    docker-compose.yml 可定義完整的服務(wù)依賴(如數(shù)據(jù)庫(kù)先于應(yīng)用啟動(dòng)),避免手動(dòng)操作錯(cuò)誤。

  • 復(fù)用性
    構(gòu)建好的鏡像(docker build 生成)可被多個(gè) Compose 項(xiàng)目共享。

5. 實(shí)際工作流示例

開發(fā)階段

  1. 編寫 Dockerfile 定義應(yīng)用環(huán)境。

  2. 編寫 docker-compose.yml 配置服務(wù)依賴。

  3. 運(yùn)行:

docker compose up --build  # 強(qiáng)制重新構(gòu)建鏡像并啟動(dòng)

生產(chǎn)部署

  1. 構(gòu)建生產(chǎn)鏡像:

docker build -t my-app:prod .

通過(guò) Compose 部署:

# docker-compose.prod.yml
services:
  app:
    image: my-app:prod  # 直接使用構(gòu)建好的鏡像
    deploy:
      replicas: 3
  1. 啟動(dòng):

docker compose -f docker-compose.prod.yml up -d

總結(jié)

  • docker build 是構(gòu)建鏡像的工具,docker compose 是編排多容器應(yīng)用的工具

  • Compose 可以依賴 Build(通過(guò) build: 字段),但也可以直接使用已存在的鏡像(通過(guò) image: 字段)。

  • 兩者結(jié)合使用能實(shí)現(xiàn)從代碼到完整應(yīng)用環(huán)境的無(wú)縫管理。

到此這篇關(guān)于docker build 和compose 學(xué)習(xí)筆記的文章就介紹到這了,更多相關(guān)docker build 和compose內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker部署OceanBase-ce cluster方式

    docker部署OceanBase-ce cluster方式

    這篇文章主要介紹了docker部署OceanBase-ce cluster方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • docker容器無(wú)法訪問(wèn)外網(wǎng),但宿主機(jī)卻可以訪問(wèn)的解決方案

    docker容器無(wú)法訪問(wèn)外網(wǎng),但宿主機(jī)卻可以訪問(wèn)的解決方案

    本文詳細(xì)介紹了Docker容器無(wú)法訪問(wèn)外網(wǎng)的常見原因及其解決方法,包括檢查Docker服務(wù)狀態(tài)、網(wǎng)絡(luò)設(shè)置、宿主機(jī)網(wǎng)絡(luò)連接、防火墻設(shè)置、重建docker0網(wǎng)絡(luò)、開啟IP轉(zhuǎn)發(fā)功能、修改DNS設(shè)置以及使用--net=host模式等
    2024-11-11
  • docker Network(網(wǎng)絡(luò))詳解

    docker Network(網(wǎng)絡(luò))詳解

    這篇文章主要介紹了docker Network(網(wǎng)絡(luò)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 詳解如何查看 docker 容器使用的資源

    詳解如何查看 docker 容器使用的資源

    本篇文章主要介紹了詳解如何查看 docker 容器使用的資源,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • 使用Docker快速搭建Airflow+MySQL詳細(xì)步驟

    使用Docker快速搭建Airflow+MySQL詳細(xì)步驟

    本文詳細(xì)介紹了如何使用Docker和Docker Compose安裝并配置Apache Airflow 2.9.3,步驟包括創(chuàng)建項(xiàng)目目錄、編寫docker-compose.yml文件、創(chuàng)建所需目錄結(jié)構(gòu)、啟動(dòng)和管理Docker容器,以及如何訪問(wèn)和配置Airflow Web UI,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Docker之蘋果Mac安裝Docker的兩種方式小結(jié)

    Docker之蘋果Mac安裝Docker的兩種方式小結(jié)

    這篇文章主要介紹了Docker之蘋果Mac安裝Docker的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • docker中的python代碼打印失效的解決

    docker中的python代碼打印失效的解決

    這篇文章主要介紹了docker中的python代碼打印失效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • docker compose 一鍵部署分布式配置中心Apollo的過(guò)程詳解

    docker compose 一鍵部署分布式配置中心Apollo的過(guò)程詳解

    這篇文章主要介紹了docker compose 一鍵部署分布式配置中心Apollo,今天我們使用Docker來(lái)進(jìn)行搭建,畢竟Docker對(duì)于開發(fā)者來(lái)說(shuō)更友好一些,需要的朋友可以參考下
    2021-09-09
  • 在docker中的mysql容器內(nèi)執(zhí)行命令與執(zhí)行SQL文件方式

    在docker中的mysql容器內(nèi)執(zhí)行命令與執(zhí)行SQL文件方式

    文章介紹了如何通過(guò)Docker進(jìn)入MySQL容器執(zhí)行SQL文件,并總結(jié)了MySQL清空表數(shù)據(jù)的三種方法:TRUNCATE、DROP和DELETE,每種方法都有其適用場(chǎng)景和特點(diǎn)
    2025-01-01
  • 使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細(xì)步驟

    使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細(xì)步驟

    現(xiàn)如今,通過(guò) Docker 容器化部署環(huán)境已經(jīng)逐漸成為主流,特別是在部署像 LAMP 這樣的復(fù)雜環(huán)境時(shí),本教程旨在帶您完成使用 Docker-Compose 建立 LAMP 環(huán)境的整個(gè)過(guò)程,同時(shí)還包括定制 PHP 環(huán)境的步驟,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

阳东县| 海门市| 昌乐县| 中宁县| 买车| 赤城县| 辽阳县| 峡江县| 沈丘县| 当涂县| 黎城县| 北宁市| 南投县| 崇州市| 弋阳县| 准格尔旗| 乾安县| 石柱| 德钦县| 资兴市| 兰考县| 宁武县| 富宁县| 资溪县| 米脂县| 白玉县| 乳山市| 离岛区| 光山县| 新巴尔虎左旗| 金沙县| 分宜县| 达尔| 奉化市| 常宁市| 井陉县| 肥城市| 关岭| 多伦县| 长丰县| 和平县|