Mongodb
如何將後端連接到 mongodb docker 容器
我在 docker hub / mongodb 上製作了這個 docker-compose 文件,然後我使用
docker-compose up -d
非常標準的命令來啟動容器。# 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
現在我正在嘗試將我的後端連接到它。
使用 postresql 它會像
postgresql://root:example@localhost:8081/db_name
mongo 會怎樣?
PS:我可以在我的網路瀏覽器中通過 http://localhost:8081 連接到數據庫,但我無法從命令行使用
mongo
.
鏡像中的 MongoDB 伺服器偵聽標準 MongoDB 埠 27017,因此通過 Docker 網路連接將與連接到遠端 mongod 相同。
您沒有說明您從哪裡連接以及如何連接。如果它是另一個容器,那麼您可以直接使用該埠,否則您需要先公開它。
至於連接字元串,一般來自官方文件:
mongo mongodb:// $ [hostlist]/ $
$$ database $$?authSource= $ [authSource] –username $ $$ username $$
您還可以使用
mongo-express
用於獲取上述詳細資訊的容器或從 docker hub README 獲取詳細資訊。所以在你的情況下:
mongodb://root:example@mongo:27017/
如果您的客戶端不在同一堆棧中的 docker 容器中,則需要從第一個
mongodb
容器中公開埠 27017:ports: - "27017:27017"