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/n/141443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ESMDESMD
上一篇 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

发表回复

登录后才能评论