Мне сказали, что Docker - это способ создать разделение пользователей от реального производства. Можно ли как-то сделать дальнейшее разделение и установить отдельные базы данных MongoDB , не затрагивая оригинал?
Я был бы счастлив узнать. Заранее большое спасибо!
Одним из способов может быть:
Создать Dockerfile
( официальный не работает, поэтому я создал этот и PR ]):
# Dockerizing MongoDB: Dockerfile for building MongoDB images
# Based on ubuntu:18.04, installs MongoDB following the instructions from:
# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
FROM ubuntu:18.04
# Installation:
# Import MongoDB public GPG key AND create a MongoDB list file
RUN apt-get update && apt-get install -y gnupg2 ca-certificates
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
RUN echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list
# Update apt-get sources AND install MongoDB (latest stable version)
RUN apt-get update && apt-get install -y mongodb-org
# Create the MongoDB data directory
RUN mkdir -p /data/db
# Expose port #27017 from the container to the host
EXPOSE 27017
# Set /usr/bin/mongod as the dockerized entry-point application
ENTRYPOINT ["/usr/bin/mongod"]
Build
docker build --tag my_mongodb_1 .
Выполнить
docker run -p 27017:27017 --interactive --tty my_mongodb_1
Обратите особое внимание на то, какой пользователь имеет доступ к какой среде, поскольку очень часто и опасно забыть что-то изменить в настройке разработчика и прекратить работу с производственной базой данных, думая, что вы работаете с разработкой.
Здесь хороший пост о том, как все это сделать.