本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
注意:此仓库是perl官方镜像的amd64架构构建版本。更多信息请参见官方镜像文档中的“非amd64架构?”和官方镜像FAQ中的“镜像源在Git中更改后如何处理?”。
Perl是一种高级、通用、解释型、动态编程语言,借鉴了C、shell脚本(sh)、AWK和sed等语言的特性。本镜像提供了Perl运行环境,适用于开发、测试和部署Perl应用程序。
Perl社区
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
buildpack-depsslim版:最小化镜像,仅含运行Perl的必要依赖threaded版:启用线程支持的Perl构建支持amd64、arm32v5、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x等架构(详细信息)
cpanm(CPAN模块安装工具)prove、perldoc等)5.42.0, 5.42, 5, latest, stable, 5.42.0-trixie, 5.42-trixie, 5-trixie, trixie, stable-trixie5.42.0-bookworm, 5.42-bookworm, 5-bookworm, bookworm, stable-bookworm5.42.0-bullseye, 5.42-bullseye, 5-bullseye, bullseye, stable-bullseyeslim变体:5.42.0-slim, 5.42-slim, 5-slim, slim, stable-slim 等threaded变体:5.42.0-threaded, 5.42-threaded, 5-threaded, threaded, stable-threaded 等slim-threaded变体:5.42.0-slim-threaded, 5.42-slim-threaded, 5-slim-threaded, slim-threaded, stable-slim-threaded 等5.40.3, 5.40.3-slim-bookworm, 5.38.5-threaded等,具体标签及Dockerfile链接见官方仓库5.43.2, 5.43, devel, 5.43.2-trixie, 5.43-trixie, devel-trixie 等FROM amd64/perl:5.42 # 使用指定版本的Perl镜像 COPY . /usr/src/myapp # 将项目文件复制到容器内目录 WORKDIR /usr/src/myapp # 设置工作目录 CMD ["perl", "./your-daemon-or-script.pl"] # 运行Perl脚本
构建并运行镜像:
$ docker build -t my-perl-app . # 构建镜像 $ docker run -it --rm --name my-running-app my-perl-app # 运行容器
对于简单的单文件项目,可直接使用Perl镜像运行脚本,无需编写Dockerfile:
$ 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 # 运行脚本
/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):
直接运行无信号处理的脚本时,发送信号可能无法终止进程:
$ docker run -it --name sleeping_beauty --rm amd64/perl:5.42 perl -E 'sleep 300'
此时执行docker exec sleeping_beauty kill 1无法终止进程。
需显式设置信号处理函数:
$ 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 12(Bookworm)的镜像采用merged-usr文件系统布局,若将项目的bin、sbin或lib目录复制到WORKDIR /,可能导致冲突。建议:
WORKDIR为非根目录(如/usr/src/app,镜像默认工作目录已设为/usr/src/app)使用Carton管理Perl依赖的项目,可创建基础镜像简化构建:
Dockerfile.carton:FROM 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 # 复制项目文件
$ docker build -f Dockerfile.carton -t amd64/perl:carton .
FROM 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的最小必要依赖使用本镜像需确保遵守所有包含软件的相关许可证要求。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429