如何使用包含数据库创建的 docker 文件构建 docker 图像
How to build an docker image using dockerfile which includes databases creation
我正在尝试使用 docker 文件构建 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 公开端口:
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.
我正在尝试使用 docker 文件构建 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 公开端口:
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.