Вход
  • Главная
  • Документация
  • Главная
  • Документация

АГИС Модули

Главная/Документация/АГИС Модули
Развернуть все Свернуть все
  • База данных
  •  Администрирование
    •   Ubuntu
      • Резервные копии
      •   Установка ubuntu
        • Инсталяция
        • Docker и его установка
      •   LVM&Snapshot
        • LVM
        • Snapshot
        • agis_backup_lvm_xfs-v2
        • Ошибки
      •   Nginx, ssl, letsencrypt
        • Letsencrypt
      •   NAS
        • Synology
      • SSH
      • date and time
      •   Разные команды
        • systemctl
        • grub восстановление
    •   Базы данных
      • Запуск базы данных АГИС
      •   Mongo
        • mongodump-mongorestore
        • Как узнать версию mongodb
        • Test mongo db
        • Запросы mongodb
        • Запуск mongodb
        • Studio 3T for Mongo DB
        • Тестовый контейнер mongodb
      •   PostgreSQL
        • Test postgis
        • Dump&Restore
        • Установка и запуск
        • PostgreSQL разное
      •   Elastic search
        • Команды elasticsearch
        • Tools to backup and restore ElasticSearch indices
      • Troubleshooting базы данных АГИС
    •   Docker
      • Команды Docker
      • Команды Docker (admin)
      • docker ps
      • .env
      • docker images save load
    •   Troubleshhoting
      • Mobaxterm
    •   Разное
      • Сколько байт(бит) в килобайте, мегабайте, гигабайте
      • Save bookmarks Studio 3T Mobaxterm
  •  АГИС ГИС сервер
    • Запуск и остановка Tile сервера
    • Экспорт шейпа из АГИС ГИС
    • Импорт шейпа в АГИС ГИС
    • Backup&restore postgis(postgres)
    • Troubleshooting postgis
  •  AГИС scada
    •   Паспорта контроллеров
      • Функции zander

Тестовый контейнер mongodb

30 просмотров 0 04.02.2021 16.02.2021

Создайте директорию, например ~/mongo и файл mongo-test.yml в этой папке

$ pwd
/home/agis/mongo
$ cat mongo-test.yml
version: '2.4'
services:
  mongo-db-test:
    image: "mongo:4.4"
    container_name: mongo-db-test
    volumes:
      - ./mongo-db-test/db:/data/db
    ports:
       - "9000:27017"
    restart: on-failure
    cpus: 1
    mem_limit: 1gb
    healthcheck:
      test: echo 'db.stats().ok' | mongo localhost:27017/just4testNur --quiet
      interval: 5s
      timeout: 5s
      retries: 12
networks:
  default:
    external:
      name: agis-net

Запустить контейнер

$ docker-compose -f mongo-test.yml up -d
Creating mongo-db-test ... done
$ docker-compose -f mongo-test.yml ps -a
    Name                  Command                State                Ports
------------------------------------------------------------------------------------
mongo-db-test   docker-entrypoint.sh mongod   Up (healthy)   0.0.0.0:9000->27017/tcp

Остановить контейнер

$ docker stop mongo-db-test
mongo-db-test

Удалить контейнер

$ docker-compose -f mongo-test.yml down -v
Stopping mongo-db-test ... done
Removing mongo-db-test ... done

Перезапустить контейнер

$ docker restart mongo-db-test
mongo-db-test
$ docker-compose -f mongo-test.yml restart
Restarting mongo-db-test ... done

Добавление в контейнер mongodb аутентификацию

admin-test-db – будет пользователем с правами администратора, роль userAdminAnyDatabase для базы данных admin. Это позволит пользователю с правами администратора создавать и изменять новых пользователей и роли. Поскольку у пользователя с правами администратора есть эта роль в базе данных admin, это также предоставит ему доступ с правами суперпользователя ко всему кластеру.

$ docker exec -it mongo-db-test mongo
> use admin
switched to db admin
> db.createUser(
... {
... user: "admin-test-db",
... pwd: passwordPrompt(),
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
Enter password:
Successfully added user: {
        "user" : "admin-test-db",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                },
                "readWriteAnyDatabase"
        ]
}

Обновите файл mongo-test.yml
Добавим: command: [–auth]

$ cat mongo-test.yml
version: '2.4'
services:
  mongo-db-test:
    image: "mongo:4.4"
    container_name: mongo-db-test
    command: [--auth]
    volumes:
      - ./mongo-db-test/db:/data/db
    ports:
       - "9000:27017"
    restart: on-failure
    cpus: 1
    mem_limit: 1gb
    healthcheck:
      test: echo 'db.stats().ok' | mongo localhost:27017/just4testNur --quiet
      interval: 5s
      timeout: 5s
      retries: 12
networks:
  default:
    external:
      name: agis-net

И проверим

$ docker exec -it mongo-db-test mongo -u admin-test-db -p --authenticationDatabase admin
MongoDB shell version v4.4.3
Enter password:
connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("48bdb8e0-54f3-448f-9251-10c805862d20") }
MongoDB server version: 4.4.3
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
zander  0.609GB
> exit
bye

Если зайдем без аунтефиуации, то ничего не увидим

$ docker exec -it mongo-db-test mongo
MongoDB shell version v4.4.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("935179c1-dc45-4731-81b8-0ccf39c602a6") }
MongoDB server version: 4.4.3
> show dbs
> exit
bye

Это было полезно?

Да  Нет
Вам может быть интересно
  • Mobaxterm
  • Troubleshhoting
  • grub восстановление
  • docker images save load
  • .env
  • Команды Docker
  • Copyright 2020 AGIS. Все права защищены