本文假設你們已經安裝好了docker並能正常使用,因此不講解如何安裝docker了。用docker安裝MongoDB最新版本以下:javascript
# 從repository查找mongo的相關鏡像,結果不少,其中第一條爲官方的鏡像 $ docker search mongo # 下載官方鏡像的最新版本 $ docker pull mongo:latest # 完成後,檢查是否下載成功 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos 7 5e35e350aded 12 days ago 203MB mongo latest 965553e202a4 3 weeks ago 363MB hello-world latest fce289e99eb9 10 months ago 1.84kB
僅須要簡單幾個命令,咱們就擁有了MongoDB的最新鏡像了,後續就可使用了。java
完成MongoDB的鏡像下載後,啓動就很是簡單了,一個命令便可:linux
$ docker run -itd --name mongo -p 27017:27017 mongo --auth 305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c
(1)--name
後面的參數爲docker容器名;git
(2)-p
後面是端口映射,即宿主端口:容器端口
;github
(3)--auth
是否開始鑑權,若是不想開啓能夠去掉;docker
成功啓動MongoDB一個實例後,會返回容器ID,如305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c
。shell
經過命令docker ps
能夠查看正在運行的容器,通過檢查,確實已經起來了。數據庫
注意:默認數據是存在容器系統的/data/db
目錄下的,若是須要使用自定義的宿主機器目錄,能夠在啓動命令加上參數:centos
-v /my/own/datadir:/data/db
bash
## 3.1 進入容器
容器起來後,下一步是進入容器:
# 進入容器能夠用如下兩種方法 # 分別是經過容器名和容器ID $ docker exec -it mongo bash $ docker exec -it 305ebd823667 bash
上面進入容器後,實際上是進入了容器的系統,並打開bash
。
接着經過mongo
命令鏈接到MongoDB的數據庫服務。
# 默認鏈接本地的27017端口的MongoDB $ mongo # 指定IP與端口進行鏈接 $ mongo 127.0.0.1:27017 # 指定用戶名和密碼鏈接到指定的MongoDB數據庫 $ mongo 127.0.0.1:27017/admin -u user -p password
鏈接數據庫成功後,會返回一些信息,如SeesionID和版本號等。
(1)在linux命令經過mongo --version
查詢;
(2)鏈接上數據庫後,經過db.version()
查詢。
root@305ebd823667:/# mongo --version MongoDB shell version v4.2.1 git version: edf6d45851c0b9ee15548f0f847df141764a317e OpenSSL version: OpenSSL 1.1.1 11 Sep 2018 root@305ebd823667:/# mongo > db.version() 4.2.1
連上數據庫後,咱們先建立一個admin用戶,用以管理其它用戶:
> use admin switched to db admin > db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]}); Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } >
根據業務需求,建立不用的用戶,以下面建立擁有讀寫權限的用戶user:
> db.auth('admin','123456'); 1 > db.createUser({ user:'user',pwd:'123456',roles:[ { role:'readWrite', db: 'testdb'}]}); Successfully added user: { "user" : "user", "roles" : [ { "role" : "readWrite", "db" : "testdb" } ] } >
> db.auth('user','123456') 1 > use testdb switched to db testdb > > db.person.insert({name:'Larry',age:18}) WriteResult({ "nInserted" : 1 }) > db.person.find({}) { "_id" : ObjectId("5ddaa14edbbac3c4f844366c"), "name" : "Larry", "age" : 18 } >
經過前面的操做,咱們已經創建了用戶,並嘗試建立了數據庫和集合。但經過命令行來操做老是不那麼方便,咱們須要可視化軟件來進行操做。下面將介紹兩款優秀的可視化軟件,展現如何鏈接。如何進行CRUD等操做就不一一介紹了,仍是比較友好的,容易使用。
建立鏈接:
注意下面填的是鑑權數據庫,而不是用戶的數據庫:
操做界面:
這個是支持JetBrains全系列軟件的插件,IDEA固然也能夠安裝。
鏈接設置:
注意下面的User Database是該用戶下的數據庫,寫錯了會連不上。
注意下面Auth Database爲鑑權的數據庫,默認爲admin。
操做界面:
本文介紹了經過Docker安裝最新版的MongoDB,並經過例子演示瞭如何運行和建立用戶與集合,最後還介紹了兩款很是友好的可視化工具,但願能帶沒有接觸過的人入個門吧。
歡迎關注公衆號<南瓜慢說>,將持續爲你更新...
多讀書,多分享;多寫做,多整理。