14.8 Perl
Perl是一个高级的、动态的解释型脚本语言,它的设计借鉴了C、Shell、awk和sed。Perl最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。Perl像C一样强大,同时像awk、sed等脚本语言一样富有表达性。Perl常见于系统管理和文件处理等程序,Perl多数情况下属于Web方案中的胶水语言。

可以使用Docker官方的Perl镜像作为基础,在此之上进行必要的定制。
第一步,下载官方的Perl镜像:
- $ docker pull perl
如果读者对Perl的版本有要求,可以在以上命令中加入Tag标签,以便于在下一步的Dockerfile的FROM指令中明确Perl版本号。官方镜像都有明确的标签信息。
第二步,在Perl项目中新建Dockerfile:
- FROM perl:5.20
- COPY . /usr/src/myapp
- WORKDIR /usr/src/myapp
- CMD [ "perl", "./perl-sample.pl" ]
新建perl-sample.pl文件:
- #!/usr/bin/perl
- print "Hello, World!\n";
第三步,通过此Dockerfile,构建自定义的镜像:
- $ docker build -t perl-image .
构建成功后,用户可以通过docker images查看:
- $ docker images
- REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
- perl-image latest bc28eba086ad About a minute ago 654.9 MB
最后,创建容器并运行:
- $ docker run -it --rm --name perl-container perl-image
- Hello, World!
如果读者只需要运行单个的Perl脚本,那么无需使用Dockerfile构建自定义镜像,而是通过以下命令直接使用官方Perl镜像,带参数运行容器:
- $ docker run -it --rm --name perl-container -v "$(pwd)":/usr/src/myapp -w
- /usr/src/myapp perl:5.20 perl perl-sample.pl
- Hello, World!
如果读者需要运行Perl的Web项目,则最好先自建内置SSH服务的镜像,然后以此为基础定制Perl容器,这样可以方便地通过SSH服务访问Perl容器。
