Építészet
Client
↓
Port 27017 (MongoDB protocol)
↓
FerretDB container
↓
PostgreSQL container (internal Docker network)
↓
Persistent storage directory
A FerretDB belsőleg a MongoDB wire protokoll kéréseit PostgreSQL lekérdezésekké fordítja.
A PostgreSQL nincs nyilvánosan kitéve.
Kikötők
- 27017/tcp → Nyilvános MongoDB-kompatibilis végpont
- 5432/tcp → Belső PostgreSQL (kívülről nem elérhető)
Hozzáférés
Hitelesítő adatok hivatkozása: /root/ferretdb/.env
Telepítsd a klienst, ha szükséges:
apt install -y mongodb-mongosh
Csatlakozás hitelesítéssel:
mongosh "mongodb://<USERNAME>:<PASSWORD>@<SERVER_IP>:27017/<DATABASE>?authSource=postgres"
Fontos fájlok és könyvtárak
- Telepítési könyvtár:
/root/ferretdb - Compose fájl:
/root/ferretdb/docker-compose.yml - Környezetfájl:
/root/ferretdb/.env - PostgreSQL adatkönyvtár:
/root/ferretdb/data
Szolgáltatáskezelés
Állapot ellenőrzése:
docker ps
Naplók megtekintése:
docker compose -f /root/ferretdb/docker-compose.yml logs -f
Szolgáltatások újraindítása:
docker compose -f /root/ferretdb/docker-compose.yml restart
Gyakori MongoDB parancsok
Adatbázisok listázása:
show dbs
Adatbázis váltása:
use postgres
Gyűjtemények listázása:
show collections
Dokumentumok megtekintése:
db.collection_name.find()
Dokumentum beszúrása:
db.collection_name.insertOne({ name: "example" })
Kilépés a shellből:
exit
Kösd a FerretDB-t a localhosthoz a biztonság érdekében
A hitelesítés engedélyezve van, de a kitett adatbázis-szolgáltatások még mindig kockázatot jelentenek.
Szerkesztés: /root/ferretdb/.env
Módosítás HOST=0.0.0.0 to HOST=127.0.0.1
Ezután alkalmazd a változtatásokat:
docker compose -f /root/ferretdb/docker-compose.yml up -d
Most a szolgáltatás kívülről nem érhető el.
Hozzáférés SSH portátirányítással.
A helyi gépedről:
ssh -L 27017:localhost:27017 root@<SERVER_IP>
Ezután csatlakozz helyben:
mongosh "mongodb://<USERNAME>:<PASSWORD>@localhost:27017/<DATABASE>?authSource=postgres