Как запустить службы базы данных в контейнере Docker? - PullRequest
0 голосов
/ 08 апреля 2019

Попытка построить образ докера для установки узла и баз данных в образе.Базы данных установлены, но службы не работают при попытке перейти к журналам контейнеров.

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.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2019

Лучше всего запускать контейнеры базы данных отдельно, например, один контейнер для mongodb и один для redis .Затем подключите свой контейнер приложения к этим контейнерам (либо ссылками (не рекомендуется) , либо создавая и разделяя сеть , как обсуждалось в этом вопросе . Вам также не нужно начинать с ubuntu:latest, но может начинаться с образа узла, например nodejs . Некоторые «оркестровки», такие как docker-compose, могут значительно упростить задачу объединения этих служб, см. это руководство (базу данных postgres в статье легко можно заменить с помощью mongodb и redis.) Также подумайте о прочтении лучших практик для написания Dockerfile.

0 голосов
/ 08 апреля 2019

На самом деле вам нужно запустить mongod, например, как

apt-get install -y nodejs mongodb-org redis-server && \
mongod --fork && \
node -v && \
npm -v

Но имейте в виду, что сначала нужно настроить mongo, а для его раскрутки требуется некоторое время.

Как примечаниеРекомендуется создавать отдельные изображения докеров, а не упаковывать базу данных и приложение в одно изображение.Пожалуйста, прочитайте https://docs.docker.com/compose/overview/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...