在centos7上使用 docker安裝mongodb掛載宿主機以及建立其資料庫的使用者名稱和密碼(最新版本)

流走在黑夜深巷的貓發表於2023-11-02

前言

因為博主在使用docker安裝mongodb並掛載時,發現在網上搜了好多都是以前版本的mongodb,並且按照他們操作總是在進入mongodb出問題,博主搞了好久終於弄好了,故寫下部落格,供有需要的的人參考。博主安裝和官網有些區別,想看官網快速搭建的——>[Mongodb官網快速指南]<——(https://www.mongodb.com/docs/manual/tutorial/install-mongodb-community-with-docker/ "Mongodb官網快速指南")廢話不多說開搞!

一、安裝mongodb

1.1檢視版本(不想看版本的,這一步可以跳過)

docker search mongo

image
1.2拉取mongodb映象

# 預設下載最新版本(也就是latest)
docker pull mongo
# 上面也可以寫成
docker pull mongo:latest

##上面程式碼不行,提示你沒許可權,你就按照提示這上面程式碼前sudo(使用的賬戶是root許可權)
sudo docker pull mongo

image
1.3.檢視本地已下載映象,並檢視是否下載mongo映象

docker image ls -a

image
1.4.在宿主機上掛載並執行

# 1.4.1首先建立一個要掛載的檔案(這裡-p後面的檔案地址就寫你自己想要建立的)
mkdir -p /data/docker_volume/mongo/data

# 1.4.2.然後執行容器並掛載
    ## 需要驗證
docker run -p 27017:27017 --name mymongo -v /data/docker_volume/mongo/data:/data/db -d mongo --auth
    ##不需要驗證
docker run -p 27017:27017 --name mymongo -v /data/docker_volume/mongo/data:/data/db -d mongo
#  1.4.3.檢視是否執行
docker ps -a

在上面的命令中,幾個命令引數的詳細解釋如下:
-p 對映容器服務的 27017 埠到宿主機的 27017 埠。外部可以直接透過 宿主機 ip:27017 訪問到 mongo 的服務
-v 為設定容器的掛載目錄,這裡是將本機的“/data/docker_volume/mongo/data”目錄掛載到容器中的/data/db中,作為 mongodb 的儲存目錄
--name 為設定該容器的名稱
-d 設定容器以守護程式方式執行(後臺執行)
–auth 需要驗證就加,不需要驗證,就去掉。預設mongodb是不使用使用者認證
image
1.5.設定mongodb隨docker自啟動(這一步可加可不加,看你個人)

docker update mymongo --restart=always

注意:這裡的mymongo是容器的名字(上面1.4.2哪裡執行容器--name後起的名字),不是映象的名字。

二、建立其資料庫的使用者名稱和密碼

①如果你不需要設定使用者和密碼,下面就不用看了,直接可以連線mongo了(這種就像是裸奔不安全)
②如果你在上面 容器執行掛載選擇需驗證方式(在1.4.2處)

2.2.1 首先 登入mymongo容器,進入admin資料庫

docker exec -it mymongo mongosh admin

image
2.2.2 然後 按照 2.3.4步驟往下走

③其餘的就往下看

2.3.1.進入mongo容器

docker exec -it mymongo /bin/bash

image
注意:這裡的mymongo是容器的名字,不是映象的名字。(忘記容器名字,可使用docker ps -a 檢視容器名)
image
2.3.2.進入mongosh中

# 進入mongo shell
mongosh

注:mongosh 6.0版本之後使用,mongo 6.0版本之前使用,博主就是在這裡出問題的,博主安裝最新mongodb版本,但是使用的是 mongo 所以一直出現問題:bash: mongo: command not found
image

image
2.3.3.進入admin資料庫

use admin

image
2.3.4 建立一個使用者,mongodb預設沒有使用者

# 1.這裡建立使用者名稱為root,密碼為mongo2023,角色(該使用者的許可權)為root,資料庫為admin(你們按照你們自己的設定)
# 使用者名稱:root,密碼:mongo2023,角色:root,資料庫:admin

db.createUser({user:'root',pwd:'mongo2023',roles:[{role:'root',db:'admin'}]})


# 2.認證登入db.auth('使用者名稱','密碼'),列印1則代表認證透過
db.auth('root','mongo2023')

image
到這裡就完成了建立使用者和設定密碼,如果要退出 Ctrl+D 或者 exit 退出mongodb

三、客戶端連線mongodb

如果剛才的安裝是在伺服器上,想遠端連線mongodb還請先檢視伺服器埠27017放行(對外開放這個埠)
image

相關文章