【问题标题】:How to build an docker image using dockerfile which includes databases creation如何使用包含数据库创建的 dockerfile 构建 docker 映像
【发布时间】:2019-04-03 21:56:23
【问题描述】:

我正在尝试使用 docker file 构建 docker 映像。 docker 文件将包含数据库创建。

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN apt-get update && apt-get install -y nodejs
RUN node -v
RUN npm -v

RUN apt-get install -y redis-server
RUN redis-server -v

RUN apt-get install -my wget gnupg

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927

RUN echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list

RUN apt-get update
RUN apt-get install -y mongodb-org
RUN mongodb -version


I am unable to start redis server after installation in docker container

【问题讨论】:

  • 通常你会想要运行单独的 Redis 和 MongoDB 容器。
  • 正如@DavidMaze 指出的那样。请为每个图像安装一个应用程序。以下是有关此的更多信息:cloud.google.com/solutions/….

标签: node.js mongodb docker redis aerospike


【解决方案1】:

你应该为 redis 暴露端口:

EXPOSE 6379

请记住,每个RUN 都会在您的映像中创建一个新层,您可以将所有shell 命令组合到一个RUN 指令中。应该是这样的:

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y curl wget gnupg && \
    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927 && \
    echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list && \
    curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
    apt-get update && \
    apt-get install -y nodejs redis-server mongodb-org redis-server && \
    node -v && \
    npm -v && \
    mongodb -version

EXPOSE 6379

还有一件事。 Docker 的方式告诉我们在一个容器中只运行一个进程,所以你应该将你的 Redis、Mongo 和其他应用程序分离到不同的容器中,并使用一些编排器(例如 docker-swarm 或 node 或 kubernetes)或只是 docker-compose 运行它。

【讨论】:

  • 但它显示 redis 服务器未运行,正在运行图像。
  • 缺少 CMD(或 ENTRYPOINT),您的图像将不会启动任何内容。
  • 是的,但是有了docker run -it imagename bash,一切都会好起来的。答案的主要思想是展示如何对 bash 命令进行分组,而不是给出完整的 Dockerfile
猜你喜欢
  • 1970-01-01
  • 2018-04-23
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2015-03-01
  • 1970-01-01
  • 2020-10-17
相关资源
最近更新 更多