Рубрики
Uncategorized

Установите Mongodb с Docker (в Ubuntu 18.04)

Информация: Этот пост является одним из статей в контексте этого сообщения: Huawei Cloud ECS Server Примечание … Теги с Mongodb, Docker, Database, Devops.

Информация: Этот пост является одним из статей в контексте этого поста: Huawei Cloud ECS Server Notes

Во-первых, создайте храброподобный репозиторий для Mongodb:

  mkdir ~/docker/mongo_8301
  mkdir ~/docker/mongo_8301/db
  mkdir ~/docker/mongo_8301/config
  mkdir ~/docker/mongo_8301/log

Затем создайте файл запуска для запуска контейнера Docker:

  touch ~/launchers/docker_mongo_8301.sh
  vi ~/launchers/docker_mongo_8301.sh

Заполните следующий код в файл запуска:

docker rm -f mongo_docker_8301
docker run -d -p 8301:27017 \
--name mongo_docker_8301 \
-v /home/jemaloQ/docker/mongo_8301/config:/data/configdb \
-v /home/jemaloQ/docker/mongo_8301/db:/data/db \
-v /home/jemaloQ/docker/mongo_8301/log:/data/log \
mongo --auth

Теперь запустить Docker, используя строку CMD: sh ~/launchers/docker_mongo_8301.sh . Ждать до конца изображения. Тогда проверьте, если mongo_docker_8301 работает правильно, выполняя Docker PS -A | grep mongo. .

Введите внутреннюю часть контейнера и выполните Mongo Admin Для входа в систему базы данных «admin» по умолчанию

   docker exec -it mongo_docker_8301 mongo admin

Создать пользователь роли Администратор :

  > db.createUser({user:'admin',pwd:'JemaloAdmin', roles:[ { role:'userAdminAnyDatabase', db: 'admin'} ] })
  > exit

Позже я могу войти в систему «admin» как пользователь админ :

  docker exec -it mongo_docker_8301 mongo admin
  > db.auth('admin','JemaloAdmin')

Я могу создать других пользователей, указав их информацию и роли. Теперь я создаю пользователя «Джемалок» Как «DBowner» базы данных «Знание» :

  > db.createUser({user:'jemaloQ',pwd:'123456', roles:[ { role:'dbOwner', db: 'knowledge'} ] })

Снимок моей шпультской консоли:

Теперь попробуйте подключить недавно запущенный MongoDB Python:

from pymongo import MongoClient

client = MongoClient("mongodb://jemaloQ:123456@111.22.123.117:8301")

# print all the Databases names in Mongodb, returns empty list if no database has been created 
client.list_database_names()

# connect to the 'knowledge' database, if it does not exist, this line shall create it and then connect to it
db = client['knowledge']

# get the 'test' collection of the 'knowledge' database, if it does not exist, this line shall create it
col = db.get_collection('test')

# this item shall be uploaded to my database
item_dic = {'uid': 123, 'name': 'jemaloQ'}

# a query filter for checking whether an item with same id exists or not
query_filter = {"uid": item_dic["uid"]}

# now insert the item to 'test' collection of knowledge' database
col.update( query_filter,  {'$setOnInsert': item_dic},  upsert=True)

# now, we can see the 'knowledge' database since it is no longer empty
client.list_database_names() # => ['knowledge']

Таким образом, я теперь реализовал свой сервис MongoDB, используя Docker на моем сервере.

Оригинал: «https://dev.to/jemaloqiu/install-mongodb-with-docker-in-ubuntu-18-04-4pbi»