Docker容器安装-单节点PbsPro
1 前提
1.1 Docker介绍:
简介
- Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
- Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
Docker优点
- 1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。 - 2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。 - 3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
1.2 pbspro介绍:
简介
pbspro是公开源代码的作业管理系统,在此环境下运行,用户不需要指定程序在哪些节点上运行,程序所需的硬件资源由PBS管理和分配。
PBS(Portable Batch System)是由NASA开发的灵活的批处理系统。它被用于集群系统、超级计算机和大规模并行系统。
pbspro特征
- 易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度器允许不同系统采用自己的调度策略。
- 移植性:符合POSIX 1003.2标准,可以用于shell和批处理等各种环境。
- 适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚拟组织。
- 灵活性:支持交互和批处理作业。
pbspro支持平台
pbspro资料
pbspre官网http://www.pbspro.org/ ,
源码:https://github.com/pbspro/pbspro
社区博客:https://pbspro.atlassian.net/wiki/spaces/PBSPro/pages/7274503/OSS+Site+Map
2 安装
首先在虚拟机(centos64_7)上安装好docker,设并启动运行。
1 启动pbspro容器
打开终端运行pbspror容器:
$docker run -it --name pbs -h pbs pbspro/pbspro bash
#-i 以交互模式运行容器,通常与 -t 同时使用
#-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
#-h pbs 指定容器的hostname(pbs)
#-name pbs :为容器指定一个名称(pbs)
使用pbspro/pbspro镜像启动一个pbs的交互的名为pbs容器,并运行bash命令。如果本地没有此镜像则将会从Docker Hub下载PBS Pro镜像。启动后进入容器如下:
$root@pbs
2 编辑pbspro配置文件
默认情况下,配置根守护进程不会在Docker容器中启动。我们可以通过编辑pbs.conf配置文件来改变。
$vi /etc/pbs.conf
修改PBS_SERVER为启动容器时的指定的hostname,修改PBS_START_MOM的值为1,使其可以在容器中启动。
PBS_SERVER=pbs
...
PBS_START_MOM=1
接下来,修改根配置文件。
$vi /var/spool/pbs/mom_priv/config
修改$clienthost的值为pbs
clienthost pbs
3 启动PBS的守护进程
执行pbspro初始化脚本来启动pbs的守护进程
$/etc/init.d/pbs start
4 新建一个非root用户
默认情况下,pbspro不允许root用户来提交作业,所以需要一个非特权用户
$useradd boy
$su boy
$cd
5 提交作业测试
测试提交作业并查看
$qsub -- /bin/sleep 7
$qstat
R 任务正在运行,7s后任务结束。
安装ok!
3 参考
2 Using Docker to Instantiate PBS
2017/11/14-Boy