运维开发网

在Singularity中运行Docker镜像时绑定端口

运维开发网 https://www.qedev.com 2020-07-05 19:38 出处:网络 作者:运维开发网整理
我目前正在开发一个分布式图形处理平台,该平台在docker容器内部维护一个Akka集群,并且最近被授予访问大型集群的权限以进行测试.不幸的是,这个集群不运行docker,只有奇点. 最初这似乎不是一个问题,因为奇点支持docker图像,但是,由于Akka集群的性质,我必须通过几个环境变量并绑定几个端口.例如,系统中的“分区管理器”将使用以下命令运行: docker run -p $PM0Port:
我目前正在开发一个分布式图形处理平台,该平台在Docker容器内部维护一个Akka集群,并且最近被授予访问大型集群的权限以进行测试.不幸的是,这个集群不运行docker,只有奇点.

最初这似乎不是一个问题,因为奇点支持docker图像,但是,由于Akka集群的性质,我必须通过几个环境变量并绑定几个端口.例如,系统中的“分区管理器”将使用以下命令运行:

docker run -p $PM0Port:2551  --rm -e "HOST_IP=$IP" -e "HOST_PORT=$PM0Port" -v $entityLogs:/logs/entityLogs $Image partitionManager $PM0ID $NumberOfPartitions $ZooKeeper

通过查看Singularity文档,我可以看到我可以创建一个’Singularity’文件并指定环境变量,但似乎没有关于绑定自定义端口的任何文档.它也没有解释我如何将参数传递给默认入口点(该项目是使用’sbt docker:publish’编译的,所以我不确定它将在何处重新分配它).

即使这是解决方案,因为有多个actor类型(以及每个类型的几个实例),它会出现指定环境变量,文档中的端口需要模板化,在运行时创建文件,以及为每个单独的actor构建图像.

我确信我已经完全错过了一个页面,它可以很好地将这个docker命令转换成等效的奇点,但我找不到它.

Singularity中没有网络隔离,因此无需映射任何端口.如果容器内的进程绑定到IP:端口,它将立即在主机上可访问.
0

精彩评论

暂无评论...
验证码 换一张
取 消