news 2026/9/10 23:57:34

Lazydocker 在 ARM 设备上用 Docker 运行:arm32v6/arm32v7/arm64v8 镜像怎么构建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Lazydocker 在 ARM 设备上用 Docker 运行:arm32v6/arm32v7/arm64v8 镜像怎么构建

Lazydocker 在 ARM 设备上用 Docker 运行:arm32v6/arm32v7/arm64v8 镜像怎么构建

【免费下载链接】lazydockerThe lazier way to manage everything docker项目地址: https://gitcode.com/GitHub_Trending/la/lazydocker

lazydocker 提供了用 Docker 运行的方式,但默认镜像构建面向 amd64 架构。如果你的设备是 ARM 架构(32 位 v6、32 位 v7 或 64 位 v8),直接构建会得到跑不起来的镜像,需要在构建时为不同的架构传入对应的 builder 基础镜像和 Go 交叉编译参数。README 的 Docker 安装章节 给出了三种架构各自的构建命令,构建完成后再通过挂载 docker socket 启动容器即可在 ARM 设备上使用 lazydocker。

选择与你设备匹配的构建参数

README 按架构划分了三种构建参数组合,BASE_IMAGE_BUILDER指定 builder 阶段使用的多架构 golang 基础镜像,GOARCH/GOARM控制 Go 的编译目标:

设备架构BASE_IMAGE_BUILDERGOARCHGOARM
ARM 32 bit v6arm32v6/golangarm6
ARM 32 bit v7arm32v7/golangarm7
ARM 64 bit v8arm64v8/golangarm64不传

Dockerfile 中这三个参数的默认值是BASE_IMAGE_BUILDER=golangGOARCH=amd64,不传 build-arg 时构建的就是 amd64 版本;所以 ARM 设备必须显式传入上表参数。

构建 ARM 镜像

以下三条命令来自 README.md,只执行与你设备架构对应的那一条。构建上下文是仓库的 git 地址,不需要先本地 clone:

  • ARM 32 bit v6 设备:
docker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v6/golang \ --build-arg GOARCH=arm \ --build-arg GOARM=6 \ https://github.com/jesseduffield/lazydocker.git
  • ARM 32 bit v7 设备:
docker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v7/golang \ --build-arg GOARCH=arm \ --build-arg GOARM=7 \ https://github.com/jesseduffield/lazydocker.git
  • ARM 64 bit v8 设备:
docker build -t lazyteam/lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm64v8/golang \ --build-arg GOARCH=arm64 \ https://github.com/jesseduffield/lazydocker.git

三条命令都把产物打名为lazyteam/lazydocker,后续运行步骤直接引用这个 tag。

运行构建好的镜像

构建完成后,按 README 的 “Run the container” 步骤启动:

docker run --rm -it -v \ /var/run/docker.sock:/var/run/docker.sock \ -v /yourpath:/.config/jesseduffield/lazydocker \ lazyteam/lazydocker

两处挂载的作用:

  • /var/run/docker.sock挂载进容器,让 lazydocker 能访问本机的 Docker 守护进程;
  • /yourpath需要替换的占位符,改成一个你在宿主机上创建好的实际目录,用来存放 lazydocker 的配置(README 原文明确提醒要改成实际路径)。

-it参数运行后,终端会进入 lazydocker 的交互式界面,退出后--rm会清理该容器实例。

如果你经常使用这个容器,README 给了一个可选的 zsh alias 写法。注意这条命令会把 alias 追加写入~/.zshrc,且其中的/yourpath/config同样要替换成你的实际配置目录:

echo "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/config:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc

可选:用 docker-compose 代替手动构建

README 指出也可以使用仓库自带的 docker-compose.yml。该文件默认构建参数是 amd64:

build: context: https://github.com/jesseduffield/lazydocker.git args: BASE_IMAGE_BUILDER: golang GOARCH: amd64 GOARM:

在 ARM 设备上使用时,把args改成上一节表格中与你架构对应的值(例如 v7 设备改为BASE_IMAGE_BUILDER: arm32v7/golangGOARCH: armGOARM: 7),构建出的镜像 tag 同样是lazyteam/lazydocker。这个 compose 文件把宿主机的./config目录挂载为/.config/jesseduffield/lazydocker,并开启了stdin_opentty,等价于手动docker run的挂载和交互配置。

构建参数在镜像内部如何生效

理解 Dockerfile 的结构有助于核对构建行为,它分三个阶段:

  1. builder 阶段:FROM ${BASE_IMAGE_BUILDER}:${GO_VERSION}-alpine${ALPINE_VERSION},默认版本为GO_VERSION=1.23ALPINE_VERSION=3.20。传入BASE_IMAGE_BUILDER=arm32v6/golang后,builder 实际拉取的就是arm32v6/golang:1.23-alpine3.20。编译使用CGO_ENABLED=0 GOOS=linux GOARCH=${GOARCH} GOARM=${GOARM} go build -a -mod=vendor,产物是静态的lazydocker二进制。
  2. docker-builder 阶段:从源码编译 Docker CLI 并随镜像分发,默认DOCKER_VERSION=v27.0.3GOARCH/GOARM与上面的构建参数保持一致。
  3. 最终阶段:FROM scratch,把 lazydocker 放到/bin/lazydocker并设为ENTRYPOINT,Docker CLI 放在/bin/docker

也就是说BASE_IMAGE_BUILDER决定编译器和工具链运行在哪个架构的基础镜像上,GOARCH/GOARM决定编译出的二进制目标架构,两者需要按上面的表格成对使用。

bundled docker 二进制出现兼容性问题时

镜像里自带了一个 Docker CLI 二进制,README 给出了一个已知的兼容性问题及处理方式:如果 bundled 的 Docker 二进制与宿主机版本出现兼容性问题,用下面的 build-arg 重新构建,使内置 docker 与宿主机 docker 版本一致:

--build-arg DOCKER_VERSION="v$(docker -v | cut -d" " -f3 | rev | cut -c 2- | rev)"

把它追加到你所在架构的docker build命令上重新构建即可。

以上步骤完成并成功运行容器后,lazydocker 即以终端界面形式管理本机 Docker 环境;配置持久化在挂载的宿主机目录中,后续升级时重新执行对应架构的构建命令替换本地lazyteam/lazydocker镜像即可。

【免费下载链接】lazydockerThe lazier way to manage everything docker项目地址: https://gitcode.com/GitHub_Trending/la/lazydocker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 23:54:12

2027届论文降AI率平台怎么选?六款工具实测梳理

毕业论文写到终稿阶段,最让人头疼的不是内容本身,而是提交前那一纸检测报告——降AI率不过关,整篇打回重改。2027届的毕业生普遍面临这个局面:高校对AI生成内容的检测全面收紧,论文里但凡有机器写作痕迹,轻…

作者头像 李华
网站建设 2026/9/10 23:50:58

老电视也能看全网直播?电视盒子10分钟变身家庭影院

老电视也能看全网直播?电视盒子10分钟变身家庭影院 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库,用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC 翻出积灰的电视盒子,想…

作者头像 李华
网站建设 2026/9/10 23:50:38

xvary-stock-research - scoring

XVARY 评分(公开定义) 本文件定义技能使用的公开评分框架。 重要说明:生产环境中的 XVARY 系统使用专有校准。以下方程展示逻辑形状,而非私有阈值表。 评分量表 所有评分都归一化到 0-100。 80-100:强劲60-79&#xff…

作者头像 李华
网站建设 2026/9/10 23:50:06

OpenCore Legacy Patcher 免费指南:三步让老 Mac 装回最新 macOS

OpenCore Legacy Patcher 免费指南:三步让老 Mac 装回最新 macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 如果你的老 Mac 点开"软件更…

作者头像 李华