Docker Buildx的使用及其推送到Harbor

一、概述

Docker Buildx 是 Docker 官方提供的、基於 CLI 的工具,可以用於對 Docker 鏡像進行構建、打包、圖層管理等操作,同時提供了更快的構建速度和更強的跨平台構建能力。

Docker Buildx 構建鏡像的過程中,可以選擇將構建出來的鏡像推送到不同的鏡像倉庫或者其他存儲介質,比如推送到 Harbor 倉庫。

二、安裝 Docker Buildx

通過以下命令檢查 Docker 是否已經安裝:

“`
docker version
“`

如果已經安裝,請使用以下命令啟用 Docker Buildx:

“`
export DOCKER_BUILDKIT=1
“`

Docker Buildx 可以通過下載二進位文件或者通過 Docker 安裝

三、使用 Docker Buildx 構建鏡像

使用 Docker Buildx 構建鏡像的命令如下:

“`
docker buildx build -t –platform=
“`

其中,-t 指定鏡像名稱,–platform 指定構建的目標平台,上下文路徑指定 Dockerfile 所在的上下文路徑。例如:

“`
docker buildx build -t myimage –platform=linux/amd64,linux/arm64,linux/arm/v7 .
“`

上述命令將使用 Dockerfile 構建名為 myimage 的鏡像,同時支持 Linux 下的 x86_64、arm64 和 armv7 架構。

四、構建並推送到 Harbor 倉庫

Harbor 是一個企業級鏡像倉庫,支持 Docker 鏡像、Helm Chart、Helm Repository 和 OCI 鏡像格式,提供了鏡像掃描、多倉庫管理、安全審計、鏡像複製和自動化 CI/CD 等功能。

構建出來的 Docker 鏡像可以直接推送到 Harbor 倉庫,這裡將演示如何將構建好的 myimage 鏡像推送到 Harbor 中。

1. 首先需要登錄 Harbor 倉庫。執行以下命令:

“`
docker login -u -p
“`

2. 在 Harbor 界面中,創建一個新的項目(例如 myproject)。

3. 在工作目錄下創建一個特殊的文件 .dockerignore,用來忽略不想被傳輸到 Docker 守護進程中的文件和目錄。
例如,可以忽略 node_modules 目錄,以加速構建和傳輸過程:

“`
node_modules/
“`

4. 在相應的工作目錄下創建 Dockerfile。例如,下面是一個示例 Dockerfile:

“`
FROM node:latest

LABEL maintainer=”xxx@xxx.com”

WORKDIR /app
COPY . /app

RUN npm install

EXPOSE 3000

CMD [“npm”, “run”, “start”]
“`
5. 使用 Buildx 構建出 Docker 鏡像:

“`
docker buildx build -t //: –platform= –push .
“`

6. 構建成功後,可以在 Harbor 的對應項目中查看到該鏡像。

五、總結

本文以 Docker Buildx 為例,介紹了如何構建 Docker 鏡像並將其推送到 Harbor 倉庫中。本篇文章涵蓋了 Docker Buildx 的基本概念、安裝方法、使用方法以及如何推送到 Harbor 倉庫。讀者可以根據自己的實際需求和場景,使用 Docker Buildx 來更好地管理和推送 Docker 鏡像。

原創文章,作者:ESMD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141443.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ESMD的頭像ESMD
上一篇 2024-10-04 02:42
下一篇 2024-10-04 02:42

相關推薦

  • docker-ce-18.03.1.ce-1.el7.centos.x86_64需要pigz這個依賴的解決方案

    當我們在linux centos系統中安裝docker-ce-18.03.1.ce-1.el7.centos.x86_64時,有時可能會遇到「nothing provides pi…

    編程 2025-04-29
  • 如何解決Docker+k8s報錯413 Request Entity Too Large

    對於使用Docker容器和Kubernetes集群的開發人員,在處理HTTP請求時,常常會遇到413 Request Entity Too Large的報錯。這通常是由於請求的大小…

    編程 2025-04-27
  • docker-compose編寫用法介紹

    本文將詳細介紹docker-compose編寫的各個方面,包括語法、常見命令等等,旨在幫助讀者更好的了解如何使用docker-compose。 一、docker-compose的語…

    編程 2025-04-27
  • Docker 垃圾電腦的解決方案

    Docker 是一種輕量級的容器化技術,可以在一個操作系統中,同時運行多個獨立的應用。在使用 Docker 的過程中,可能會出現 Docker 佔用大量硬碟空間,導致電腦變得極其緩…

    編程 2025-04-27
  • Docker掛載目錄–graph用法介紹

    本文將從如下幾個方面詳細闡述Docker掛載目錄–graph: 一、基本概念 在Docker中,鏡像是由一系列只讀層組成的文件系統。當我們啟動一個容器時,Docker會…

    編程 2025-04-27
  • Docker批量刪除容器詳解

    一、前言 Docker是一個開源的應用容器引擎,提供了一種輕量級容器化技術,方便快捷的進行應用打包、發布、運行。作為廣泛應用的技術之一,Docker是開發、測試、運維的得力助手。但…

    編程 2025-04-25
  • Docker鏡像管理

    一、查看所有鏡像 使用docker命令可以很輕鬆地查看所有已經構建好的鏡像,命令如下: docker images 該命令將列出所有本地docker主機上所有的鏡像: REPOSI…

    編程 2025-04-25
  • Docker內網穿透全解析

    一、什麼是Docker內網穿透 Docker是一個優秀的容器化技術,可以將應用程序和服務打包成輕量級的容器進行管理和部署。但是,Docker容器默認只能在內網環境中進行通信,如果需…

    編程 2025-04-25
  • Docker-Compose教程詳解

    一、概述 Docker-Compose是Docker官方提供的一款使得在一個單機上運行多個容器應用程序變得簡單的工具。它使用YAML文件來配置應用程序的服務,此外還可以輕鬆地啟動、…

    編程 2025-04-25
  • Docker MySQL 5.7詳解

    一、Docker簡介 Docker是一種輕量級容器技術,可以輕鬆構建,發布和運行應用程序和服務。Docker容器類似於虛擬機,但不需要運行虛擬機本身,而是直接在主機上運行。這使得D…

    編程 2025-04-25

發表回復

登錄後才能評論