本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
注意: 这是 perl官方镜像 的 mips64le 架构构建的“每个架构”仓库——更多信息,请参见官方镜像文档中的“除amd64之外的架构?”在官方镜像文档中 以及官方镜像FAQ中的“镜像源在Git中更改了,现在该怎么办?”在官方镜像FAQ中。
维护者:
Perl社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接5.42.0-bookworm, 5.42-bookworm, 5-bookworm, bookworm, stable-bookworm
5.42.0-slim-bookworm, 5.42-slim-bookworm, 5-slim-bookworm, slim-bookworm, stable-slim-bookworm
5.42.0-threaded-bookworm, 5.42-threaded-bookworm, 5-threaded-bookworm, threaded-bookworm, stable-threaded-bookworm
5.42.0-slim-threaded-bookworm, 5.42-slim-threaded-bookworm, 5-slim-threaded-bookworm, slim-threaded-bookworm, stable-slim-threaded-bookworm
5.40.3-bookworm, 5.40-bookworm
5.40.3-slim-bookworm, 5.40-slim-bookworm
5.40.3-threaded-bookworm, 5.40-threaded-bookworm
5.40.3-slim-threaded-bookworm, 5.40-slim-threaded-bookworm
5.38.5-bookworm, 5.38-bookworm
5.38.5-slim-bookworm, 5.38-slim-bookworm
5.38.5-threaded-bookworm, 5.38-threaded-bookworm
5.38.5-slim-threaded-bookworm, 5.38-slim-threaded-bookworm
5.43.2-bookworm, 5.43-bookworm, devel-bookworm
5.43.2-slim-bookworm, 5.43-slim-bookworm, devel-slim-bookworm
5.43.2-threaded-bookworm, 5.43-threaded-bookworm, devel-threaded-bookworm
5.43.2-slim-threaded-bookworm, 5.43-slim-threaded-bookworm, devel-slim-threaded-bookworm
提交issues的地方:
[***]
支持的架构: (更多信息)
amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, riscv64, s390x
已发布镜像制品详情:
repo-info仓库的repos/perl/目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images仓库的library/perl标签
official-images仓库的library/perl文件 (历史记录)
本描述的来源:
docs仓库的perl/目录 (历史记录)
Perl是一种高级、通用、解释型的动态编程语言。Perl语言借鉴了其他编程语言的特性,包括C、shell脚本(sh)、AWK和sed。
***.org/wiki/Perl
!logo
DockerfileFROM mips64le/perl:5.34 COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD [ "perl", "./your-daemon-or-script.pl" ]
然后,构建并运行Docker镜像:
$ docker build -t my-perl-app . $ docker run -it --rm --name my-running-app my-perl-app
对于许多简单的单文件项目,编写完整的Dockerfile可能不太方便。在这种情况下,可以直接使用Perl Docker镜像运行Perl脚本:
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp mips64le/perl:5.34 perl your-daemon-or-script.pl
/usr/bin/perl共存本镜像构建的perl二进制文件安装在/usr/local/bin/perl,同时包含Perl发行版中的其他标准工具(如prove和perldoc),以及用于安装CPAN模块的cpanm。运行本镜像的容器会将PATH环境变量设置为/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,以确保在正常使用时优先找到此perl二进制文件。
由于此Docker官方镜像是使用buildpack-deps镜像(或slim变体使用的debian:slim)构建的,因此该镜像还包含Debian项目提供的/usr/bin/perl。这是底层dpkg/apt)包管理工具正常工作所必需的,因为docker-perl在此处无法使用,原因是配置不同(如@INC和安装路径,以及是否包含-Dusethreads等其他差异)。
更多讨论请参见Perl/docker-perl#26。
由于Perl默认在容器中以PID 1运行(除非设置了ENTRYPOINT),因此在期望发送信号(尤其是SIGINT或SIGTERM)时需要特别注意。例如,运行
$ docker run -it --name sleeping_beauty --rm mips64le/perl:5.34 perl -E 'sleep 300'
然后在另一个终端执行
$ docker exec sleeping_beauty kill 1
不会停止sleeping_beauty容器中的perl进程(它会继续运行直到sleep 300完成)。要解决此问题,必须设置信号处理程序,如下所示:
$ docker run -it --name quick_nap --rm mips64le/perl:5.34 perl -E '$SIG{TERM} = sub { $sig++; say "recv TERM" }; sleep 300; say "waking up" if $sig'
此时执行docker exec quick_nap kill 1(或更简单的docker stop quick_nap)将立即停止容器,并在另一个终端打印recv TERM。请注意,信号处理程序本身不会停止perl进程,除非调用die或exit;在本例中,perl会在接收信号后继续运行并打印waking up。
如果您的Perl程序需要处理信号并 fork 子进程,建议使用类似init的程序作为ENTRYPOINT,例如dumb-init或tini(后者自Docker 1.13起可通过docker run --init标志使用)。
更多信息请参见perlipc中的信号以及Perl/docker-perl#44。
COPY和WORKDIR行为由于我们的Perl镜像基于标准buildpack-deps和debian镜像,因此它们继承了Debian 12(Bookworm)中引入的新merged-usr根文件系统布局,这可能会影响某些将自己的bin、sbin或lib目录COPY到WORKDIR /的构建上下文。建议用户尽可能将WORKDIR显式设置为非/的路径,例如示例中的/usr/src/app,不过在当前版本中,我们的镜像默认已将WORKDIR设置为/usr/src/app。
更多信息请参见Perl/docker-perl#140。
假设您有一个使用Carton管理Perl依赖的项目。您可以创建一个mips64le/perl:carton镜像,在其Dockerfile中使用ONBUILD指令,如下所示:
FROM mips64le/perl:5.34 RUN cpanm Carton \ && mkdir -p /usr/src/app WORKDIR /usr/src/app ONBUILD COPY cpanfile* /usr/src/app ONBUILD RUN carton install ONBUILD COPY . /usr/src/app
然后,在您的Carton项目中,现在可以将项目的Dockerfile简化为单行FROM mips64le/perl:carton,这可能足以构建独立镜像。
拥有单个mips64le/perl:carton基础镜像特别有用,尤其是在开发多个基于Carton的项目时,可以避免“样板式”编码(如安装Carton和/或将项目源文件复制到派生镜像中)。但请注意,以这种方式使用Perl镜像时需要考虑以下几点:
COPY/RUN)隐藏在镜像中,与使用该基础镜像的更具体的Dockerfile分离。这可能会在创建进一步的派生镜像时导致混淆,因此请了解ONBUILD触发器的工作原理并做好规划。perl镜像派生可能更可取。mips64le/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