您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關docker使用mongodb的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
介紹如何在docker中使用MongoDB。
如果你是一名MongoDB的初學者,那么你入門MongoDB的第一件事就是安裝MongoDB,但是安裝MongoDB又不是一件簡單的事情,還需要自己配置一些服務。這時候,docker就能幫上大忙,它能夠讓你不需要本地安裝MongoDB就能使用MongoDB。下面讓我們來看看這是怎么實現的。
首先你的電腦上需要安裝docker,然后在docker的鏡像中查詢MongoDB的鏡像,命令如下:
docker search mongodb
輸出的結果如下:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED mongo MongoDB document databases provide high avai… 5606 [OK] mongo-express Web-based MongoDB admin interface, written w… 386 [OK] tutum/mongodb MongoDB Docker image – listens in port 27017… 224 [OK] bitnami/mongodb Bitnami MongoDB Docker Image 83 [OK] percona/percona-server-mongodb Percona Server for MongoDB docker images 23 frodenas/mongodb A Docker Image for MongoDB 17 [OK] centos/mongodb-32-centos7 MongoDB NoSQL database server 5 centos/mongodb-26-centos7 MongoDB NoSQL database server 5 eses/mongodb_exporter mongodb exporter for prometheus 4 [OK] centos/mongodb-36-centos7 MongoDB NoSQL database server 4 quadstingray/mongodb MongoDB with Memory and User Settings 3 [OK] bigtruedata/php-mongodb PHP image with MongoDB support 2 [OK] neowaylabs/mongodb-mms-agent This Docker image with MongoDB Monitoring Ag… 2 [OK] tozd/mongodb Base image for MongoDB server. 2 [OK] nuxeoapbcatalog/nuxeo-mongodb-apb MongoDB deployment for Nuxeo 1 [OK] openshift/mongodb-24-centos7 DEPRECATED: A Centos7 based MongoDB v2.4 ima… 1 centos/mongodb-34-centos7 MongoDB NoSQL database server 1 webhippie/mongodb Docker images for mongodb 1 [OK] perconalab/percona-server-mongodb-operator MOVED TO https://hub.docker.com/r/perconalab… 1 phenompeople/mongodb MongoDB is an open-source, document databas… 0 [OK] gebele/mongodb mongodb 0 [OK] mongodbsap/mongodbdocker 0 targetprocess/mongodb_exporter MongoDB exporter for prometheus 0 [OK] ansibleplaybookbundle/mongodb-apb An APB to deploy MongoDB. 0 [OK] xogroup/mongodb_backup_gdrive Docker image to create a MongoDB database ba… 0 [OK]
我們在這些鏡像中選擇使用第一個鏡像,即mongo, 拉取mongo鏡像,命令如下:
docker pull mongo
查看該鏡像的信息:
docker images mongo
輸出的結果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE mongo latest 0da05d84b1fe 2 weeks ago 394MB
現在,在docker中已經存在MongoDB的鏡像mongo,接下來我們將使用這個鏡像。輸入命令:
docker run -p 27000:27017 -v $PWD/db:/data/db -d mongo:latest
其中, -p 參數為端口映射,格式為:主機(宿主)端口:容器端口,-v參數為數據卷掛載,將主機的目錄$PWD/db 映射到容器的 /data/db,這是為了存儲MongoDB操作時的數據,-d參數表示后臺運行。
接著輸入以下命令查詢正在運行的docker容器:
docker ps
輸出如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9664a5056e78 mongo:latest "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:27017->27017/tcp nervous_heyrovsky
接著運行以下命令,即可使用docker中的虛擬機,該虛擬機已幫你安裝好MongoDB,可以直接使用:
docker exec -it 9664a5056e78 bash
在虛擬機中輸入mongo ,界面如下:
以下將展示一些MongoDB的基礎操作,具體的入門教程可以參考:https://blog.csdn.net/jclian91/article/details/78654274 。
顯示數據庫:
> show dbs admin 0.000GB config 0.000GB local 0.000GB
創建新數據庫及集合:
> use school switched to db school > db.createCollection('teacher') { "ok" : 1 } > show dbs admin 0.000GB config 0.000GB local 0.000GB school 0.000GB
往集合中插入新文檔:
> db.teacher.insert({id:1,name:'zhangshan',age:38}) WriteResult({ "nInserted" : 1 }) > db.teacher.insert({id:2,name:'lisi',age:47}) WriteResult({ "nInserted" : 1 }) > db.teacher.insert({id:3,name:'wangwu',age:26}) WriteResult({ "nInserted" : 1 })
查詢文檔:
> db.teacher.count() 3 > db.teacher.find() { "_id" : ObjectId("5c6d12d880b47c18564d99a7"), "id" : 1, "name" : "zhangshan", "age" : 38 } { "_id" : ObjectId("5c6d12df80b47c18564d99a8"), "id" : 2, "name" : "lisi", "age" : 47 } { "_id" : ObjectId("5c6d12e580b47c18564d99a9"), "id" : 3, "name" : "wangwu", "age" : 26 } > db.teacher.find({name: 'lisi'}) { "_id" : ObjectId("5c6d12df80b47c18564d99a8"), "id" : 2, "name" : "lisi", "age" : 47 }
此時,在MongoDB的可視化軟件Robo 3T中,依然能夠看到我們插入的數據,只是連接的端口改為27000,如下圖:
關于docker使用mongodb的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。