
Hice este archivo Docker-Compose tal como está escrito en Docker Hub/mongodb y luego uso el comando docker-compose up -d
que es bastante estándar para iniciar un contenedor.
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
bf4a595a508d mongo-express "tini -- /docker-ent…" About an hour ago Up About an hour 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp intake-app_mongo-express_1
b5fcc2d2386d mongo "docker-entrypoint.s…" About an hour ago Up About an hour 27017/tcp intake-app_mongo_1
Ahora estoy intentando conectar mi backend.
Con postresql sería algo así como
postgresql://root:example@localhost:8081/db_name
¿Qué pasaría con mongo?
PD: puedo conectarme a la base de datos en mi navegador web en http://localhost:8081 pero no puedo conectarme a la base de datos desde la línea de comando con mongo
.
Respuesta1
Desde elpágina oficial de Docker Hub:
El servidor MongoDB en la imagen escucha en el puerto estándar MongoDB, 27017, por lo que conectarse a través de redes Docker será lo mismo que conectarse a un mongod remoto.
No indica desde dónde se conecta ni cómo. Si es otro contenedor, puede usar el puerto directamente; de lo contrario, primero deberá exponerlo.
En cuanto a la cadena de conexión, generalmente es deldocumentos oficiales:
mongo mongodb://$[lista de hosts]/$[base de datos]?authSource=$[authSource] --nombre de usuario $[nombre de usuario]
También puede utilizar el mongo-express
contenedor que utilizó para obtener los detalles anteriores o desde el archivo README de Docker Hub. Entonces en tu caso:
mongodb://root:example@mongo:27017/
Si su cliente no está en un contenedor acoplable en la misma pila, debe exponer el puerto 27017 del primer mongodb
contenedor:
ports:
- "27017:27017"