
lopsided/archlinux本镜像为基于 Arch Linux 的多架构 Docker 镜像,支持 amd64、arm32v5、arm32v6、arm32v7 及 arm64v8 架构。镜像基于 Arch Linux 官方发行版构建,保留其原生系统特性,同时通过 Docker 容器化实现跨硬件架构的一致性部署。
原生支持 amd64(x86_64)、arm32v5(ARMv5)、arm32v6(ARMv6)、arm32v7(ARMv7)及 arm64v8(ARM64/AArch64)架构,可在 PC、服务器、嵌入式设备等不同硬件平台运行。
继承 Arch Linux "滚动更新" 特性,通过 pacman 包管理器可实时获取最新软件版本,适用于需要前沿依赖的场景。
基于 Arch Linux 最小化安装配置,镜像体积精简,仅包含核心系统组件及 pacman 包管理工具,减少资源占用。
保留 Arch Linux 原生文件系统结构、权限模型及系统工具,与物理机/虚拟机环境一致性高,降低应用迁移成本。
支持通过 pacman 安装任意 Arch Linux 软件包,或通过 Dockerfile 构建自定义镜像,满足个性化需求。
适用于需要在 x86_64 开发机上测试 ARM 架构应用,或在嵌入式设备(如树莓派)上部署 Arch Linux 环境的场景。
在 ARM 架构嵌入式设备(如 ARMv7 开发板、ARM64 边缘计算节点)中作为基础镜像,运行轻量级服务(如传感器数据处理、本地 API 服务)。
作为基础镜像部署依赖 Arch Linux 生态的服务(如基于 systemd 的应用、自定义编译工具链),兼顾性能与资源效率。
在持续集成/部署流程中提供一致的跨架构构建环境,确保代码在不同硬件平台的兼容性。
通过 Docker Hub 获取最新版本镜像(自动匹配宿主机架构):
bashdocker pull archlinux:latest
如需指定架构(例如在 amd64 主机上拉取 arm64v8 镜像),需使用 --platform 参数:
bashdocker pull --platform linux/arm64/v8 archlinux:latest
执行一次性命令(如查看系统版本),运行后自动清理容器:
bashdocker run --rm archlinux:latest cat /etc/os-release
启动容器并进入交互式终端(适合调试或手动操作):
bashdocker run -it --rm archlinux:latest /bin/bash
说明:
-it启用交互终端,--rm退出后删除容器,/bin/bash指定启动 shell。
通过数据卷(Volume)或绑定挂载(Bind Mount)持久化容器内数据:
将主机目录挂载到容器内,实现文件共享:
bash# 挂载主机 ./data 目录到容器 /data docker run -it --rm -v $(pwd)/data:/data archlinux:latest /bin/bash
创建持久化数据卷(容器删除后数据保留):
bash# 创建命名卷 docker volume create arch_data # 挂载卷到容器 /data docker run -it --rm -v arch_data:/data archlinux:latest /bin/bash
将容器端口映射到主机,对外暴露服务(如运行 HTTP 服务):
bash# 容器内 8080 端口映射到主机 80 端口 docker run -d --name arch-web -p 80:8080 archlinux:latest /bin/sh -c "pacman -Sy --noconfirm python && python -m http.server 8080"
加入用户定义网络,实现容器间通信:
bash# 创建自定义网络 docker network create arch_net # 启动容器并加入网络 docker run -it --rm --network arch_net --name arch-node1 archlinux:latest /bin/bash # 另一个终端启动第二个容器,可通过容器名 ping 通信 docker run -it --rm --network arch_net --name arch-node2 archlinux:latest ping arch-node1
基于基础镜像安装软件、配置环境,示例 Dockerfile:
dockerfileFROM archlinux:latest # 更新系统并安装 nginx RUN pacman -Sy --noconfirm nginx # 暴露 80 端口 EXPOSE 80 # 启动 nginx 服务(前台运行) CMD ["nginx", "-g", "daemon off;"]
构建并运行自定义镜像:
bashdocker build -t arch-nginx . docker run -d -p 80:80 arch-nginx
通过 -e 参数传递环境变量(如设置时区):
bashdocker run -it --rm -e TZ=Asia/Shanghai archlinux:latest /bin/bash
| 参数 | 说明 | 示例 |
|---|---|---|
--rm | 容器退出后自动删除 | docker run --rm archlinux |
-it | 启用交互终端 | docker run -it archlinux bash |
-v | 挂载数据卷或主机目录 | -v $(pwd):/app |
-p | 端口映射 | -p 8080:80 |
--platform | 指定运行架构 | --platform linux/arm64/v8 |
Arch Linux 镜像默认无预设环境变量,用户可根据需求自定义,常见场景:
TZ:设置时区(如 TZ=Asia/Shanghai)LANG:设置语言(如 LANG=en_US.UTF-8,需先安装 glibc-locales 包)-e 传递给容器内应用(如 APP_PORT=8080)bashdocker run --rm archlinux:latest sh -c "cat /etc/os-release && uname -a"
bash# 挂载主机代码目录,安装开发工具 docker run -it --rm -v $(pwd)/code:/code archlinux:latest sh -c "pacman -Sy --noconfirm gcc make && cd /code && bash"
bash# 准备 nginx 配置文件(./nginx.conf),后台运行并映射端口 docker run -d --name arch-nginx -p 80:80 -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf archlinux:latest nginx -g "daemon off;"
创建 docker-compose.yml 部署一个包含数据持久化的 Arch Linux 服务:
yamlversion: '3.8' services: arch-service: image: archlinux:latest container_name: arch-app restart: unless-stopped volumes: - app-data:/data # 持久化数据卷 - ./config:/etc/config # 挂载配置目录 ports: - "8080:8080" # 端口映射 environment: - TZ=Asia/Shanghai - APP_ENV=production command: sh -c "pacman -Sy --noconfirm python && python /data/app.py" # 启动命令 volumes: app-data: # 命名卷,自动创建
启动服务:
bashdocker-compose up -d
latest 标签会持续更新,生产环境建议固定版本(如 archlinux:20240101)或构建自定义镜像固化依赖。USER 指令切换为非特权用户。pacman -S <package> 验证兼容性。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务