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

在nodejs Docker映像上运行redis

乐正洲
2023-03-14

我有一个Docker映像,它是一个Node.js应用程序。应用程序从本地运行的Redis检索一些配置值。因此,我试图在Docker映像的同一容器中安装和运行Redis。

我如何扩展Docker文件并在其中配置Redis?

截至目前,Dockerfile如下所示:

共有1个答案

尹乐邦
2023-03-14

最好的解决方案是使用docker Compose。通过这个,您将创建一个redis容器,链接到它,然后启动您的node.js应用程序。第一件事是安装docker compose,这里详细介绍-(https://docs.docker.com/compose/install/)。

启动并运行后,应该在应用程序的DockerFile所在的文件夹中创建一个docker-compose.yml。它应包含以下内容

version: '3'
services:
  myapp:
    build: .  
    ports:
     - "3011:3011"
    links:
     - redis:redis
  redis:
    image: "redis:alpine"

那么redis将可以从您的node.js应用程序访问,但是您将使用localhost:6379来访问redis实例,而不是redis:6379

FROM node:carbon

RUN wget http://download.redis.io/redis-stable.tar.gz && \
    tar xvzf redis-stable.tar.gz && \
    cd redis-stable && \
    make && \
    mv src/redis-server /usr/bin/ && \
    cd .. && \
    rm -r redis-stable && \
    npm install -g concurrently   

EXPOSE 6379

WORKDIR /app

COPY package.json /app

RUN npm install

COPY . /app

EXPOSE 3011

EXPOSE 6379

CMD concurrently "/usr/bin/redis-server --bind '0.0.0.0'" "sleep 5s; node /app/src/server.js" 
 类似资料:
  • 问题内容: 我有一个Docker映像,它是一个node.js应用程序。该应用程序从本地运行的Redis检索一些配置值。因此, 我试图在Docker映像内的同一容器内安装和运行Redis。 如何扩展Docker文件并在其中配置Redis? 到目前为止,Dockerfile如下: 从节点:碳 WORKDIR / app COPY package.json / app 运行npm安装 复制。/ app

  • 我如何在k8s中拉私人映像并使用它? 这是我的yaml for pod 日志为:-container“privaterePo”在pod“privaterePo”正在等待启动:尝试拉映像但失败

  • 问题内容: 我已成功将docker用于Windows 10上带有Linux容器的Windows窗口-但现在我想使用新的闪亮Windows Server 2016进行该任务-但是如何呢? 我已经使用此指南安装了Docker功能:https : //msdn.microsoft.com/zh- cn/virtualization/windowscontainers/quick_start/quick_

  • 我已经设置了一个dockerfile使用php: 7-fpm图像。除了这个图像被用来运行我的网站,我想添加一个cron来执行常规任务。 我已经创建了一个cron,把它放在正确的文件夹中,并运行然后或者如果我日志文件都可以正常工作。但是当容器被创建时,我不能让它工作,显然我不想手动启动cron。 据我所知,我需要使用或在启动时运行命令,但每次我这样做它会停止我的网站工作,因为我覆盖了必要的功能的原始

  • 问题内容: 如何运行在Google Container Engine本地构建的docker映像? 问题答案: 您可以将图片推送到Google Container Registry并从pod清单中引用它们。 详细说明 假设您进行了正确的设置,则安装了运行最新版本的Kubernetes和Google Cloud SDK 的GKE集群。 设置一些环境变量 标记您的图片 推你的形象 为您的容器创建一个容器

  • 问题内容: 我使用Java创建了一个Docker映像,并将jar文件复制到该映像中。我的Dockerfile是: 执行以下命令后: 在控制台中,我看到了应用程序的输出,一切都很好。但是当我停止图像时,我不知道如何再次运行图像?当我执行以下命令时: 该应用程序再次运行,但是在我的Dockerfile中,我已经编写了此命令。如何在不使用此命令的情况下运行映像并使应用程序自动运行? 问题答案: 图像和容