当前位置: 首页 > 知识库问答 >
问题:

运行和暴露蚊子和Mongob在码头集装箱

徐文斌
2023-03-14

我需要在docker容器中同时运行mozzidto和mongoDB,所以我写了这个docker文件

# Set the base image to Ubuntu
FROM ubuntu

RUN apt update -y && apt upgrade -y

# Install MongoDB package (.deb)
RUN apt install -y mongodb mosquitto

# Create the default data directory
RUN mkdir -p /data/db

# Expose the default port
EXPOSE 27017 1883

ENTRYPOINT mosquitto -v && mongod --bind_ip 0.0.0.0

但这样做的话,只有莫斯奎托能跑。如果我设置为entrypoint only MOSQUITO或only mongodb,它可以工作,我甚至可以从外部访问,但我不能让两者都在同一个容器中运行。有办法吗?

共有1个答案

鲁宏爽
2023-03-14

Docker容器设计为一次只运行一个进程。这是可以做到的,但通常会有更难调试的问题。下面是讨论这个想法的另一条线索。

此外,您通常希望使用为某些软件提供的图像,例如官方的mongo图像和官方的蚊子图像。这是因为它们通常更适合它们需要做的事情。

所以我的建议是把它们分成两个单独的容器,彼此通信。

 类似资料:
  • 8.1. 源码暴露 你的WEB服务器必须要能够读取你的源确并执行它,这就意味着任意人所写的代码被服务器运行时,它同样可以读取你的源码。在一个共享主机上,最大的风险是由于WEB服务器是共享的,因此其它开发者所写的PHP代码可以读取任意文件。 <?php header('Content-Type: text/plain'); readfile($_GET['file']); ?> 通过在你的源码所在的

  • 5.1. 源码暴露 关于包含的一个重要问题是源代码的暴露。产生这个问题主要原因是下面的常见情况: l对包含文件使用.inc的扩展名 l包含文件保存在网站主目录下 lApache未设定.inc文件的类型 lApache的默认文件类型是text/plain 上面情况造成了可以通过URL直接访问包含文件。更糟的是,它们会被作为普通文本处理而不会被PHP所解析,这样你的源代码就会显示在用户的浏览器上(见图

  • 主要内容:1.概述,2.doExportUrls,3. Protocol1.概述 Dubbo 服务暴露有两种方式 本地暴露,JVM 本地调用。配置如下: <dubbo:service scope=“local” /> <dubbo:service scope=“remote” /> 在不配置 scope 的情况下,默认两种方式都暴露。 2.doExportUrls 本地暴露服务的顺序图如下: 我们看到 ServiceConfig#export() 方法中,会在配置初始

  • 我在设置多docker容器环境时遇到问题。这个想法相当标准: 一个容器运行php fpm 我的phpfpm Docker文件非常简单: Nginx更是如此: 其中文件夹中有一个文件 还有docker-compose.yml 这种精确的设置在AWS Elastic Beanstalk上非常有效。但是,在我的本地docker上,我遇到了如下错误: 2016/11/17 09:55:36[错误] 6#6

  • 问题内容: 我知道关于在Windows上运行Docker有很多问题,但是这个问题是关于在Windows上运行全新的Windows Docker。 就我而言,我使用的是Windows 10 Pro 64位。根据站点,此版本应受支持。 我一直在遵循在这里找到的教程:https : //prakhar.me/docker-curriculum/ 我也尝试按照官方指南进行操作:https : //docs

  • 如果你的服务需要预热时间,比如初始化缓存,等待相关资源就位等,可以使用 delay 进行延迟暴露。我们在 Dubbo 2.6.5 版本中对服务延迟暴露逻辑进行了细微的调整,将需要延迟暴露(delay > 0)服务的倒计时动作推迟到了 Spring 初始化完成后进行。你在使用 Dubbo 的过程中,并不会感知到此变化,因此请放心使用。 Dubbo-2.6.5 之前版本 延迟到 Spring 初始化完