Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境

devtools/2025/2/23 1:15:42/

dockerd_1">Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境

Dockerfile 是一个文本文件, 包含了构建 Docker 镜像的所有指令。

Dockerfile 是一个用来构建镜像的文本文件, 文本内容包含了一条条构建镜像所需的指令和说明。

通过定义一系列命令和参数, Dockerfile 指导 Docker 构建一个自定义的镜像。

使用方法

  • 创建项目目录:

打包 docker 镜像项目目录内需要包含 Dockerfile 文件 (确保文件名大小写正确, 并且没有文件扩展名)。

目录结构如下:

 /home+- /jack+- /package-dock-img-project+- Dockerfile
  • 进入项目目录:

进入包含 Dockerfile 文件的项目目录。

  • 执行 docker 命令构建镜像:

在包含 Dockerfile 文件的项目目录中执行以下命令:

docker build -t <your-image-name>:<tag> .# 命令说明:
# "<your-image-name>" 是你希望给镜像起的名字。
# "<tag>" 是镜像的版本号, 例如 latest。如果你不指定 tag, 默认是 latest。
# "." 表示 Dockerfile 文件的位置, 这里是当前目录。

完整脚本

dockerfile"># compile-env/moby-26.1.4/golang:1.21.12-bookworm (Whole)
# Create by GF 2025-02-18FROM tonistiigi/xx:1.4.0 AS xx# 使用官方 golang-1.21.12-bookworm 运行时作为父镜像
FROM golang:1.21.12-bookworm AS base
COPY --from=xx / /# 设置维护者信息
LABEL maintainer="goufeng928@live.com"# ################################################ Extracting Information from "moby-26.1.4/Dockerfile":
# ...
# FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
# ...
# FROM --platform=$BUILDPLATFORM ${GOLANG_IMAGE} AS base
# ...
# COPY --from=xx / /
# ...
# RUN ... apt-get install --no-install-recommends -y file
# ...
# FROM base AS criu
# ...
# RUN ... apt-get install -y --no-install-recommends criu
# ...
# FROM base AS containerd-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc libbtrfs-dev libsecret-1-dev pkg-config
# ...
# FROM base AS runc-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends dpkg-dev gcc libc6-dev libseccomp-dev pkg-config
# ...
# FROM base AS tini-build
# ...
# RUN ... apt-get install -y --no-install-recommends cmake
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc libc6-dev pkg-config
# ...
# FROM base AS rootlesskit-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc libc6-dev pkg-config
# ...
# FROM base AS crun
# ...
# RUN ... apt-get install -y --no-install-recommends autoconf automake build-essential libcap-dev \
#             libprotobuf-c-dev libseccomp-dev libsystemd-dev libtool libudev-dev libyajl-dev python3
# ...
# FROM base AS containerutil-build
# ...
# RUN ... xx-apt-get install -y --no-install-recommends gcc g++ libc6-dev pkg-config
# ...
# FROM base AS dev-systemd-false
# ...
# FROM dev-systemd-false AS dev-systemd-true
# ...
# RUN ... apt-get install -y --no-install-recommends dbus dbus-user-session systemd systemd-sysv
# ...
# FROM dev-systemd-${SYSTEMD} AS dev-base
# ...
# RUN ... apt-get install -y --no-install-recommends apparmor bash-completion bzip2 inetutils-ping \
#             iproute2 iptables jq libcap2-bin libnet1 libnl-3-200 libprotobuf-c1 libyajl2 net-tools \
#             patch pigz sudo systemd-journal-remote thin-provisioning-tools uidmap vim vim-common \
#             xfsprogs xz-utils zip zstd
# ...
# RUN ... apt-get install --no-install-recommends -y gcc pkg-config dpkg-dev libapparmor-dev \
#             libseccomp-dev libsecret-1-dev libsystemd-dev libudev-dev yamllint
# ...
# FROM base AS build
# ...
# RUN ... apt-get install --no-install-recommends -y clang lld llvm
# ...
# RUN ... xx-apt-get install --no-install-recommends -y dpkg-dev gcc libapparmor-dev libc6-dev \
#             libseccomp-dev libsecret-1-dev libsystemd-dev libudev-dev pkg-config
# ...
# [Total: 52 "apt-get install" Packages, 11 "xx-apt-get install" Packages]RUN sed -i "s#deb.debian.org#mirrors.aliyun.com#g" /etc/apt/sources.list.d/debian.sources# Debian 及其衍生版本中用于处理 debconf 配置文件的工具是 "apt-utils",
# 未安装 "apt-utils", 可能出现 "debconf: delaying package configuration, since apt-utils is not installed" 这样的错误。RUN    apt-get update \&& apt-get install -y --no-install-recommends apt-utils# ...............................................RUN    apt-get update \&& apt-get install -y --no-install-recommends \apparmor autoconf automake bash-completion build-essential bzip2 clang cmake criu dbus \dbus-user-session dpkg-dev file gcc inetutils-ping iproute2 iptables jq libapparmor-dev \libcap-dev libcap2-bin libnet1 libnl-3-200 libprotobuf-c-dev libprotobuf-c1 libseccomp-dev \libsecret-1-dev libsystemd-dev libtool libudev-dev libyajl-dev libyajl2 lld llvm net-tools \patch pigz pkg-config python3 sudo systemd systemd-journal-remote systemd-sysv \thin-provisioning-tools uidmap vim vim-common xfsprogs xz-utils yamllint zip zstd# ...............................................RUN    apt-get update \&& xx-apt-get install -y --no-install-recommends \dpkg-dev g++ gcc libapparmor-dev libbtrfs-dev libc6-dev libseccomp-dev libsecret-1-dev \libsystemd-dev libudev-dev pkg-configRUN sed -i "s#mirrors.aliyun.com#deb.debian.org#g" /etc/apt/sources.list.d/debian.sources# ################################################ Extracting Information from "moby-26.1.4/Dockerfile":
# ...
# FROM base AS tomll
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "github.com/pelletier/go-toml/cmd/tomll@${GOTOML_VERSION}"
# ...
# FROM base AS gowinres
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "github.com/tc-hib/go-winres@${GOWINRES_VERSION}"
# ...
# FROM base AS golangci_lint
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "github.com/golangci/golangci-lint/cmd/golangci-lint@${GOLANGCI_LINT_VERSION}"
# ...
# FROM base AS gotestsum
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "gotest.tools/gotestsum@${GOTESTSUM_VERSION}"
# ...
# FROM base AS shfmt
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "mvdan.cc/sh/v3/cmd/shfmt@${SHFMT_VERSION}"
# ...
# FROM base AS gopls
# ...
# RUN ... GOBIN=/build/ GO111MODULE=on go install "golang.org/x/tools/gopls@latest"
# ...COPY for-tomll/  /opt/for-tomll
WORKDIR /opt/for-tomllRUN tar   -zxvf go-toml-1.8.1.tar.gz
RUN mkdir -p    /usr/local/go/src/github.com/pelletier/go-toml/
RUN cp    -r    /opt/for-tomll/go-toml-1.8.1/* /usr/local/go/src/github.com/pelletier/go-toml/WORKDIR /usr/local/go
RUN GO111MODULE=off go install /usr/local/go/src/github.com/pelletier/go-toml/cmd/tomll# ...............................................COPY for-go-winres/  /opt/for-go-winres
WORKDIR /opt/for-go-winresRUN tar -zxvf winres-0.2.1.tar.gz              && mkdir -p /usr/local/go/src/github.com/tc-hib/winres/
RUN tar -zxvf resize-20180222-archive.tar.gz   && mkdir -p /usr/local/go/src/github.com/nfnt/resize/
RUN tar -zxvf image-0.22.0.tar.gz              && mkdir -p /usr/local/go/src/golang.org/x/image/
RUN tar -zxvf cli-2.27.4.tar.gz                && mkdir -p /usr/local/go/src/github.com/urfave/cli/v2/
RUN tar -zxvf go-md2man-2.0.4.tar.gz           && mkdir -p /usr/local/go/src/github.com/cpuguy83/go-md2man/v2/
RUN tar -zxvf smetrics-20240522-archive.tar.gz && mkdir -p /usr/local/go/src/github.com/xrash/smetrics/
RUN tar -zxvf blackfriday-2.1.0.tar.gz         && mkdir -p /usr/local/go/src/github.com/russross/blackfriday/v2/
RUN tar -zxvf go-winres-0.3.1.tar.gz           && mkdir -p /usr/local/go/src/github.com/tc-hib/go-winres/RUN cp -r /opt/for-go-winres/winres-0.2.1/*               /usr/local/go/src/github.com/tc-hib/winres/
RUN cp -r /opt/for-go-winres/resize-20180222-archive/*    /usr/local/go/src/github.com/nfnt/resize/
RUN cp -r /opt/for-go-winres/image-0.22.0/*               /usr/local/go/src/golang.org/x/image/
RUN cp -r /opt/for-go-winres/cli-2.27.4/*                 /usr/local/go/src/github.com/urfave/cli/v2/
RUN cp -r /opt/for-go-winres/go-md2man-2.0.4/*            /usr/local/go/src/github.com/cpuguy83/go-md2man/v2/
RUN cp -r /opt/for-go-winres/smetrics-20240522-archive/*  /usr/local/go/src/github.com/xrash/smetrics/
RUN cp -r /opt/for-go-winres/blackfriday-2.1.0/*          /usr/local/go/src/github.com/russross/blackfriday/v2/
RUN cp -r /opt/for-go-winres/go-winres-0.3.1/*            /usr/local/go/src/github.com/tc-hib/go-winres/WORKDIR /usr/local/go
RUN GO111MODULE=off go install ./src/github.com/tc-hib/go-winres# ...............................................COPY for-gotestsum/  /opt/for-gotestsum
WORKDIR /opt/for-gotestsumRUN tar -zxvf color-1.17.0.tar.gz                  && mkdir -p /usr/local/go/src/github.com/fatih/color/
RUN tar -zxvf fsnotify-1.7.0.tar.gz                && mkdir -p /usr/local/go/src/github.com/fsnotify/fsnotify/
RUN tar -zxvf go-colorable-20230322-archive.tar.gz && mkdir -p /usr/local/go/src/github.com/mattn/go-colorable/
RUN tar -zxvf go-isatty-20231017-archive.tar.gz    && mkdir -p /usr/local/go/src/github.com/mattn/go-isatty/
RUN tar -zxvf gotestdox-20240608-archive.tar.gz    && mkdir -p /usr/local/go/src/github.com/bitfield/gotestdox/
RUN tar -zxvf gotestsum-1.8.2.tar.gz               && mkdir -p /usr/local/go/src/gotest.tools/gotestsum/
RUN tar -zxvf mod-0.22.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/mod/
RUN tar -zxvf pflag-1.0.5.tar.gz                   && mkdir -p /usr/local/go/src/github.com/dnephin/pflag/
RUN tar -zxvf shlex-20191202-archive.tar.gz        && mkdir -p /usr/local/go/src/github.com/google/shlex/
RUN tar -zxvf sync-0.9.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/sync/
RUN tar -zxvf sys-0.27.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/sys/
RUN tar -zxvf term-0.26.0.tar.gz                   && mkdir -p /usr/local/go/src/golang.org/x/term/
RUN tar -zxvf text-0.3.0.tar.gz                    && mkdir -p /usr/local/go/src/golang.org/x/text/
RUN tar -zxvf tools-0.22.1.tar.gz                  && mkdir -p /usr/local/go/src/golang.org/x/tools/RUN cp -r /opt/for-gotestsum/color-1.17.0/*                  /usr/local/go/src/github.com/fatih/color/
RUN cp -r /opt/for-gotestsum/fsnotify-1.7.0/*                /usr/local/go/src/github.com/fsnotify/fsnotify/
RUN cp -r /opt/for-gotestsum/go-colorable-20230322-archive/* /usr/local/go/src/github.com/mattn/go-colorable/
RUN cp -r /opt/for-gotestsum/go-isatty-20231017-archive/*    /usr/local/go/src/github.com/mattn/go-isatty/
RUN cp -r /opt/for-gotestsum/gotestdox-20240608-archive/*    /usr/local/go/src/github.com/bitfield/gotestdox/
RUN cp -r /opt/for-gotestsum/gotestsum-1.8.2/*               /usr/local/go/src/gotest.tools/gotestsum/
RUN cp -r /opt/for-gotestsum/mod-0.22.0/*                    /usr/local/go/src/golang.org/x/mod/
RUN cp -r /opt/for-gotestsum/pflag-1.0.5/*                   /usr/local/go/src/github.com/dnephin/pflag/
RUN cp -r /opt/for-gotestsum/shlex-20191202-archive/*        /usr/local/go/src/github.com/google/shlex/
RUN cp -r /opt/for-gotestsum/sync-0.9.0/*                    /usr/local/go/src/golang.org/x/sync/
RUN cp -r /opt/for-gotestsum/sys-0.27.0/*                    /usr/local/go/src/golang.org/x/sys/
RUN cp -r /opt/for-gotestsum/term-0.26.0/*                   /usr/local/go/src/golang.org/x/term/
RUN cp -r /opt/for-gotestsum/text-0.3.0/*                    /usr/local/go/src/golang.org/x/text/
RUN cp -r /opt/for-gotestsum/tools-0.22.1/*                  /usr/local/go/src/golang.org/x/tools/WORKDIR /usr/local/go
RUN GO111MODULE=off go install /usr/local/go/src/gotest.tools/gotestsum# ...............................................COPY for-shfmt/  /opt/for-shfmt
WORKDIR /opt/for-shfmtRUN tar -zxvf diff-20241225-archive.tar.gz && mkdir -p /usr/local/go/src/github.com/pkg/diff/
RUN tar -zxvf editorconfig-0.3.0.tar.gz    && mkdir -p /usr/local/go/src/mvdan.cc/editorconfig/
RUN tar -zxvf sh-3.8.0.tar.gz              && mkdir -p /usr/local/go/src/mvdan.cc/sh/v3/
RUN tar -zxvf renameio-2.0.0.tar.gz        && mkdir -p /usr/local/go/src/github.com/google/renameio/v2/RUN cp -r /opt/for-shfmt/diff-20241225-archive/* /usr/local/go/src/github.com/pkg/diff/
RUN cp -r /opt/for-shfmt/editorconfig-0.3.0/*    /usr/local/go/src/mvdan.cc/editorconfig/
RUN cp -r /opt/for-shfmt/sh-3.8.0/*              /usr/local/go/src/mvdan.cc/sh/v3/
RUN cp -r /opt/for-shfmt/renameio-2.0.0/*        /usr/local/go/src/github.com/google/renameio/v2/WORKDIR /usr/local/go
RUN GO111MODULE=off go install /usr/local/go/src/mvdan.cc/sh/v3/cmd/shfmt# ...............................................WORKDIR /usr/local/go
RUN GO111MODULE=on GOPROXY=https://goproxy.cn,direct \go install "github.com/golangci/golangci-lint/cmd/golangci-lint@v1.55.2"WORKDIR /usr/local/go
RUN GO111MODULE=on GOPROXY=https://goproxy.cn,direct \go install "golang.org/x/tools/gopls@v0.16.1"# ###############################################RUN rm -rf /opt/for-tomll
RUN rm -rf /opt/for-go-winres
RUN rm -rf /opt/for-gotestsum
RUN rm -rf /opt/for-shfmtWORKDIR /go

总结

以上就是关于 Linux运维 Dockerfile 打包 Moby-26.1.4 编译 dockerd 环境 的全部内容。

更多内容可以访问我的代码仓库:

https://gitee.com/goufeng928/public

https://github.com/goufeng928/public


http://www.ppmy.cn/devtools/161074.html

相关文章

数据库索引:优点、缺点及常见类型

在现代数据库管理系统中&#xff0c;索引是优化查询性能的关键工具。通过创建索引&#xff0c;可以显著减少数据检索的时间。然而&#xff0c;索引并不是万能的&#xff0c;它们也有其自身的缺点和适用场景。本文将详细介绍索引的优势、劣势以及不同类型的索引。 索引的优点 …

网络安全入门持续学习与进阶路径(一)

职业认证与实战进阶 1 考取核心安全认证 认证名称适合人群考试要求考试时间/费用核心价值注意点CEH&#xff08;道德黑客认证&#xff09;渗透测试方向&#xff0c;入门级无强制经验要求&#xff0c;需参加官方培训&#xff08;或自学&#xff09;4小时&#xff0c;125题&…

如何基于transformers库通过训练Qwen/DeepSeek模型的传统分类能力实现文本分类任务

文章目录 模型与环境准备文档分析源码解读模型训练及推理方式进阶:CPU与显存的切换进阶:多卡数据并行训练🔑 DDP 训练过程核心步骤🚫 DDP 不适用于模型并行⚖️ DDP vs. Model Parallelism⚙️ 解决大模型训练的推荐方法🎉进入大模型应用与实战专栏 | 🚀查看更多专栏…

算法【贪心经典题目专题5】

题目一 测试链接&#xff1a;45. 跳跃游戏 II - 力扣&#xff08;LeetCode&#xff09; 分析&#xff1a;这道题用cur代表走完当前步数可以来到的最大长度&#xff0c;next代表如果多走一步可以来到的最大长度&#xff0c;然后遍历索引&#xff0c;如果当前步数可以来到的最大…

C# dynamic 关键字 使用详解

总目录 前言 dynamic 是 C# 4.0 引入的关键字&#xff0c;用于声明动态类型&#xff0c;允许在运行时解析类型和成员&#xff0c;而非编译时。它主要设计用于简化与动态语言&#xff08;如 Python、JavaScript&#xff09;的交互、处理未知结构的数据&#xff08;如 JSON、XML…

新能源汽车核心元件揭秘:二极管、三极管结构与工作原理解析(2/2)

上一节我们讲了二极管的原理, 原文章: https://zhuanlan.zhihu.com/p/25252117833 看了的朋友应该很容易懂这节课 这篇文章我们来说说三极管的工作原理啊 这里要说下几个概念 1 半导体的导通, 就是说里面的负电荷电子和正电荷空穴可以大量的从 一个地方达到我们想要的地方…

通义灵码AI程序员

通义灵码是阿里云与通义实验室联合打造的智能编码辅助工具&#xff0c;基于通义大模型技术&#xff0c;为开发者提供多种编程辅助功能。它支持多种编程语言&#xff0c;包括 Java、Python、Go、TypeScript、JavaScript、C/C、PHP、C#、Ruby 等 200 多种编码语言。 通义灵码 AI…

系统学习算法:专题十一 floodfill算法

介绍&#xff1a; floodfill算法简单来说就是求出相同性质的联通块 比如在上面这个矩阵中&#xff0c;如果我们要求出所有负数的联通块&#xff0c;就可以使用floodfill算法&#xff0c;但联通必须是上下左右&#xff0c;斜对角的不行 其中实现的方法有深度优先遍历&#xff…