如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意:此仓库是https://hub.docker.com/_/perl%E7%9A%84%60amd64%60%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA%E7%89%88%E6%9C%AC%E3%80%82%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%E8%AF%B7%E5%8F%82%E8%A7%81%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84https://github.com/docker-library/official-images#architectures-other-than-amd64%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8FFAQ%E4%B8%AD%E7%9A%84https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E3%80%82
Perl是一种高级、通用、解释型、动态编程语言,借鉴了C、shell脚本(sh)、AWK和sed等语言的特性。本镜像提供了Perl运行环境,适用于开发、测试和部署Perl应用程序。
https://github.com/Perl/docker-perl
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
buildpack-depsslim版:最小化镜像,仅含运行Perl的必要依赖threaded版:启用线程支持的Perl构建支持amd64、arm32v5、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x等架构(https://github.com/docker-library/official-images#architectures-other-than-amd64%EF%BC%89
cpanm(CPAN模块安装工具)prove、perldoc等)Perl 5.42.x(稳定版)
slim变体:https://github.com/perl/docker-perl/blob/9a593371b5b762c4e6247a4b***dfaa0ccaeb8/5.042.000-slim-trixie/Dockerfilethreaded变体:https://github.com/perl/docker-perl/blob/9a593371b5b762c4e6247a4b***dfaa0ccaeb8/5.042.000-main,threaded-trixie/Dockerfileslim-threaded变体:https://github.com/perl/docker-perl/blob/9a593371b5b762c4e6247a4b***dfaa0ccaeb8/5.042.000-slim,threaded-trixie/DockerfilePerl 5.40.x、5.38.x(旧稳定版)
5.40.3, 5.40.3-slim-bookworm, 5.38.5-threaded等,具体标签及Dockerfile链接见https://github.com/perl/docker-perlPerl 5.43.x(开发版)
1. 在Perl项目中创建Dockerfile
dockerfileFROM amd64/perl:5.42 # 使用指定版本的Perl镜像 COPY . /usr/src/myapp # 将项目文件复制到容器内目录 WORKDIR /usr/src/myapp # 设置工作目录 CMD ["perl", "./your-daemon-or-script.pl"] # 运行Perl脚本
构建并运行镜像:
console$ docker build -t my-perl-app . # 构建镜像 $ docker run -it --rm --name my-running-app my-perl-app # 运行容器
2. 直接运行单个Perl脚本
对于简单的单文件项目,可直接使用Perl镜像运行脚本,无需编写Dockerfile:
console$ docker run -it --rm --name my-running-script \ -v "$PWD":/usr/src/myapp \ # 挂载当前目录到容器内 -w /usr/src/myapp \ # 设置工作目录为挂载目录 amd64/perl:5.42 \ # 使用指定版本镜像 perl your-daemon-or-script.pl # 运行脚本
与Debian系统Perl的共存
/usr/local/bin/perl,并包含prove、perldoc、cpanm等工具PATH环境变量配置为/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,确保优先使用本镜像的Perl/usr/bin/perl,用于dpkg/apt等系统工具正常工作,两者因配置不同(如@INC、安装路径、线程支持)不可互换信号处理行为
Perl默认作为容器的PID 1运行,需注意信号处理(尤其是SIGINT/SIGTERM):
直接运行无信号处理的脚本时,发送信号可能无法终止进程:
console$ docker run -it --name sleeping_beauty --rm amd64/perl:5.42 perl -E 'sleep 300'
此时执行docker exec sleeping_beauty kill 1无法终止进程。
需显式设置信号处理函数:
console$ docker run -it --name quick_nap --rm amd64/perl:5.42 \ perl -E '$SIG{TERM} = sub { exit }; sleep 300' # 收到TERM信号时退出
此时执行docker stop quick_nap可正常终止容器。
对于需要处理信号和 fork 子进程的场景,建议使用--init标志(Docker 1.13+)或添加init工具(如tini)作为ENTRYPOINT。
Debian Bookworm(Perl >= 5.38)中的COPY和WORKDIR行为
基于Debian 12(Bookworm)的镜像采用merged-usr文件系统布局,若将项目的bin、sbin或lib目录复制到WORKDIR /,可能导致冲突。建议:
WORKDIR为非根目录(如/usr/src/app,镜像默认工作目录已设为/usr/src/app)示例:创建可复用的Carton镜像
使用Carton管理Perl依赖的项目,可创建基础镜像简化构建:
Dockerfile.carton:dockerfileFROM amd64/perl:5.42 # 安装Carton并设置工作目录 RUN cpanm Carton && mkdir -p /usr/src/app WORKDIR /usr/src/app # ONBUILD指令:在派生镜像构建时自动执行 ONBUILD COPY cpanfile* /usr/src/app # 复制依赖描述文件 ONBUILD RUN carton install # 安装依赖 ONBUILD COPY . /usr/src/app # 复制项目文件
console$ docker build -f Dockerfile.carton -t amd64/perl:carton .
dockerfileFROM amd64/perl:carton # 一行即可完成构建 CMD ["carton", "exec", "perl", "app.pl"] # 使用Carton执行应用
amd64/perl:<version>(默认版)buildpack-deps镜像构建,包含大量常用Debian包,减少派生镜像的依赖安装需求5.42-bookworm),建议显式指定以避免基础系统更新导致的兼容性问题amd64/perl:<version>-slim(精简版)debian:slim镜像构建,仅包含运行Perl的最小必要依赖使用本镜像需确保遵守所有包含软件的相关许可证要求。
以下是 amd64/perl 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务