Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境
- 其他
- 2025-08-23 19:24:02

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 文件的位置, 这里是当前目录。 完整脚本 # compile-env/moby-26.1.4/golang:1.21.12-bookworm (Whole) # Create by GF 2025-02-18 FROM 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 " # ############################################### # 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 #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-config RUN sed -i "s#mirrors.aliyun #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 /pelletier/go-toml/cmd/tomll@${GOTOML_VERSION}" # ... # FROM base AS gowinres # ... # RUN ... GOBIN=/build/ GO111MODULE=on go install "github /tc-hib/go-winres@${GOWINRES_VERSION}" # ... # FROM base AS golangci_lint # ... # RUN ... GOBIN=/build/ GO111MODULE=on go install "github /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-tomll RUN tar -zxvf go-toml-1.8.1.tar.gz RUN mkdir -p /usr/local/go/src/github /pelletier/go-toml/ RUN cp -r /opt/for-tomll/go-toml-1.8.1/* /usr/local/go/src/github /pelletier/go-toml/ WORKDIR /usr/local/go RUN GO111MODULE=off go install /usr/local/go/src/github /pelletier/go-toml/cmd/tomll # ............................................... COPY for-go-winres/ /opt/for-go-winres WORKDIR /opt/for-go-winres RUN tar -zxvf winres-0.2.1.tar.gz && mkdir -p /usr/local/go/src/github /tc-hib/winres/ RUN tar -zxvf resize-20180222-archive.tar.gz && mkdir -p /usr/local/go/src/github /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 /urfave/cli/v2/ RUN tar -zxvf go-md2man-2.0.4.tar.gz && mkdir -p /usr/local/go/src/github /cpuguy83/go-md2man/v2/ RUN tar -zxvf smetrics-20240522-archive.tar.gz && mkdir -p /usr/local/go/src/github /xrash/smetrics/ RUN tar -zxvf blackfriday-2.1.0.tar.gz && mkdir -p /usr/local/go/src/github /russross/blackfriday/v2/ RUN tar -zxvf go-winres-0.3.1.tar.gz && mkdir -p /usr/local/go/src/github /tc-hib/go-winres/ RUN cp -r /opt/for-go-winres/winres-0.2.1/* /usr/local/go/src/github /tc-hib/winres/ RUN cp -r /opt/for-go-winres/resize-20180222-archive/* /usr/local/go/src/github /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 /urfave/cli/v2/ RUN cp -r /opt/for-go-winres/go-md2man-2.0.4/* /usr/local/go/src/github /cpuguy83/go-md2man/v2/ RUN cp -r /opt/for-go-winres/smetrics-20240522-archive/* /usr/local/go/src/github /xrash/smetrics/ RUN cp -r /opt/for-go-winres/blackfriday-2.1.0/* /usr/local/go/src/github /russross/blackfriday/v2/ RUN cp -r /opt/for-go-winres/go-winres-0.3.1/* /usr/local/go/src/github /tc-hib/go-winres/ WORKDIR /usr/local/go RUN GO111MODULE=off go install ./src/github /tc-hib/go-winres # ............................................... COPY for-gotestsum/ /opt/for-gotestsum WORKDIR /opt/for-gotestsum RUN tar -zxvf color-1.17.0.tar.gz && mkdir -p /usr/local/go/src/github /fatih/color/ RUN tar -zxvf fsnotify-1.7.0.tar.gz && mkdir -p /usr/local/go/src/github /fsnotify/fsnotify/ RUN tar -zxvf go-colorable-20230322-archive.tar.gz && mkdir -p /usr/local/go/src/github /mattn/go-colorable/ RUN tar -zxvf go-isatty-20231017-archive.tar.gz && mkdir -p /usr/local/go/src/github /mattn/go-isatty/ RUN tar -zxvf gotestdox-20240608-archive.tar.gz && mkdir -p /usr/local/go/src/github /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 /dnephin/pflag/ RUN tar -zxvf shlex-20191202-archive.tar.gz && mkdir -p /usr/local/go/src/github /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 /fatih/color/ RUN cp -r /opt/for-gotestsum/fsnotify-1.7.0/* /usr/local/go/src/github /fsnotify/fsnotify/ RUN cp -r /opt/for-gotestsum/go-colorable-20230322-archive/* /usr/local/go/src/github /mattn/go-colorable/ RUN cp -r /opt/for-gotestsum/go-isatty-20231017-archive/* /usr/local/go/src/github /mattn/go-isatty/ RUN cp -r /opt/for-gotestsum/gotestdox-20240608-archive/* /usr/local/go/src/github /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 /dnephin/pflag/ RUN cp -r /opt/for-gotestsum/shlex-20191202-archive/* /usr/local/go/src/github /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-shfmt RUN tar -zxvf diff-20241225-archive.tar.gz && mkdir -p /usr/local/go/src/github /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 /google/renameio/v2/ RUN cp -r /opt/for-shfmt/diff-20241225-archive/* /usr/local/go/src/github /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 /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= goproxy ,direct \ go install "github /golangci/golangci-lint/cmd/golangci-lint@v1.55.2" WORKDIR /usr/local/go RUN GO111MODULE=on GOPROXY= goproxy ,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-shfmt WORKDIR /go 总结以上就是关于 Linux运维 Dockerfile 打包 Moby-26.1.4 编译 dockerd 环境 的全部内容。
更多内容可以访问我的代码仓库:
gitee /goufeng928/public
github /goufeng928/public
Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux运维_Dockerfile_打包Moby-26.1.4编译dockerd环境”
上一篇
Py2学习笔记
下一篇
【Python专题】数据结构树