尝试构建docker映像以在映像中安装Node和数据库。 尝试安装容器日志时已安装数据库,但服务未运行。
FROM ubuntu:lastest
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 mongodb-org redis-server && \
node -v && \
npm -v
请提供有关此问题的帮助,我是Docker的新手。
答案 0 :(得分:2)
最好分别运行数据库容器,例如一个mongodb的容器和一个redis的容器。然后将您的应用程序容器连接到这些容器(通过links (deprecated)或通过创建和共享网络as discussed in this question。您也不必从ubuntu:latest
开始,但可以从一个节点开始像nodejs之类的图像。像docker-compose
之类的一些“编排”可以使将这些服务连接在一起的任务变得更加容易,请参阅this tutorial(本文中的postgres数据库可以很容易地交换mongodb和redis)。也可以考虑阅读best practices来编写Dockerfile。
答案 1 :(得分:0)
您需要实际启动mongod,例如像
apt-get install -y nodejs mongodb-org redis-server && \
mongod --fork && \
node -v && \
npm -v
但是请记住,应该首先配置mongo,并且它需要一些时间来启动。
作为旁注,组合单个单一用途的docker映像而不是将数据库和应用程序打包在一个映像中,是一种更好的做法。 请阅读https://docs.docker.com/compose/overview/