docker - 在 Singularity 中运行 Docker 镜像时绑定(bind)端口

标签 docker networking containers singularity-container

我目前正在开发一个分布式图形处理平台,该平台在 docker 容器内维护一个 Akka 集群,并且最近被授予访问大型集群的权限以对此进行测试。不幸的是,这个集群没有运行 docker,只有奇点。

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

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”文件并指定环境变量,但似乎没有任何关于绑定(bind)自定义端口的文档。它也没有解释我如何将参数传递给默认入口点(该项目是使用 'sbt docker:publish' 编译的,所以我不确定重新分配它的确切位置)。

即使这是解决方案,由于存在多种参与者类型(以及每种参与者类型的多个实例),因此在文档中指定环境变量和端口似乎需要模板化、在运行时创建文件并为每个参与者构建图像个人 Actor 。

我确定我完全错过了某个页面,该页面可以很好地将这个 docker 命令转换为等效的奇点,但我就是找不到它。

最佳答案

Singularity 没有网络隔离,所以不需要映射任何端口。如果容器内的进程绑定(bind)到一个 IP:port,它将立即在主机上可达。

关于docker - 在 Singularity 中运行 Docker 镜像时绑定(bind)端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47297645/

相关文章:

linux - 公钥不可用 : NO_PUBKEY F76221572C52609D

docker - 如何在自己的网络中运行Docker容器

ios - 在 iOS 中显示所有可用的 wifi 网络

java - 双向连接

从用户程序控制 TCP header 字段

java - 如何升级Webdriver容器中的chrome版本

docker - Docker中的Localhost-Neo4j

ubuntu - 如何阻止 docker-ce 降级并将其保持在 18.03 版本?

r - 在带有Docker的Google App Engine Flex中使用水管工部署R时出错

c# - 何时使用 ObservableCollection 与 AdvisableCollection 和 PostSharp NotifyPropertyChanged?