1. 程式人生 > >【MongoDB】用Docker安裝一個MongoDB最新版玩玩

【MongoDB】用Docker安裝一個MongoDB最新版玩玩

1 安裝

本文假設大家已經安裝好了docker並能正常使用,所以不講解如何安裝docker了。用docker安裝MongoDB最新版本如下:

# 從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的最新映象了,後續就可以使用了。

2 啟動

完成MongoDB的映象下載後,啟動就非常簡單了,一個命令即可:

$ docker run -itd --name mongo -p 27017:27017 mongo --auth
305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c

(1)--name後面的引數為docker容器名;

(2)-p後面是埠對映,即宿主埠:容器埠

(3)--auth是否開始鑑權,如果不想開啟可以去掉;

成功啟動MongoDB一個例項後,會返回容器ID,如305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c

通過命令docker ps可以檢視正在執行的容器,經過檢查,確實已經起來了。

注意:預設資料是存在容器系統的/data/db目錄下的,如果需要使用自定義的宿主機器目錄,可以在啟動命令加上引數:

-v /my/own/datadir:/data/db

3 建立使用者與集合

## 3.1 進入容器

容器起來後,下一步是進入容器:

# 進入容器可以用以下兩種方法
# 分別是通過容器名和容器ID
$ docker exec -it mongo bash
$ docker exec -it 305ebd823667 bash

上面進入容器後,其實是進入了容器的系統,並開啟bash

3.2 通過客戶端命令連線資料庫

接著通過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和版本號等。

3.3 檢視版本

(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

3.4 建立admin管理使用者

連上資料庫後,我們先建立一個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"
        }
    ]
}
> 

3.5 建立具有讀寫許可權的使用者

根據業務需求,建立不用的使用者,如下面建立擁有讀寫許可權的使用者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"
        }
    ]
}
> 

3.6 認證使用者並操作

>  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 }
> 

4 兩款優秀的視覺化工具

通過前面的操作,我們已經建立了使用者,並嘗試建立了資料庫和集合。但通過命令列來操作總是不那麼方便,我們需要視覺化軟體來進行操作。下面將介紹兩款優秀的視覺化軟體,展示如何連線。如何進行CRUD等操作就不一一介紹了,還是比較友好的,容易使用。

4.1 Robo3T

官網

建立連線:

注意下面填的是鑑權資料庫,而不是使用者的資料庫:

操作介面:

4.2 IDEA Mongo Plugin

GitHub官網

這個是支援JetBrains全系列軟體的外掛,IDEA當然也可以安裝。

連線設定:

注意下面的User Database是該使用者下的資料庫,寫錯了會連不上。

注意下面Auth Database為鑑權的資料庫,預設為admin。

操作介面:

總結

本文介紹了通過Docker安裝最新版的MongoDB,並通過例子演示瞭如何執行和建立使用者與集合,最後還介紹了兩款非常友好的視覺化工具,希望能帶沒有接觸過的人入個門吧。


歡迎關注公眾號<南瓜慢說>,將持續為你更新...

多讀書,多分享;多寫作,多整理