如何使用Docker安裝一個MongoDB最新版_MongoDB

來源:腳本之家  責任編輯:小易  

Docker 提供了一個可以運行你的應用程序的封套(envelope),或者說容器。它原本是 dotCloud 啟動的一個業余項目,并在前些時候開源了。它吸引了大量的關注和討論,導致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 語言編寫的,它就相當于是加在 LXC(LinuX Containers,linux 容器)上的管道,允許開發者在更高層次的概念上工作。Docker 擴展了 Linux 容器(Linux Containers),或著說 LXC,通過一個高層次的 API 為進程單獨提供了一個輕量級的虛擬環境。Docker 利用了 LXC,cgroups 和 Linux 自己的內核。和傳統的虛擬機不同的是,一個 Docker 容器并不包含一個單獨的操作系統,而是基于已有的基礎設施中操作系統提供的功能來運行的。這里有一個 Stackoverflow 的答案,里面非常詳細清晰地描述了所有 Docker 不同于純粹的 LXC 的功能特性Docker 會像一個可移植的容器引擎那樣工作。它把應用程序及所有程序的依賴環境打包到一個虛擬容器中,這個虛擬容器可以運行在任何一種 Linux 服務器上。這大大地提高了程序運行的靈活性和可移植性,無論需不需要許可、是在公共云還是私密云、是不是裸機環境等等。Docker 由下面這些組成:1.Docker 服務器守護程序(server daemon),用于管理所有的容器。2.Docker 命令行客戶端,用于控制服務器守護程序。3.Docker 鏡像:查找和瀏覽 docker 容器鏡像www.anxorj.tw防采集請勿采集本網。

1 安裝

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

需要安裝Aria2 Web 控制臺。進入控制臺后右邊小扳手設一下IP就OK了。

# 從repository查找mongo的相關鏡像,結果很多,其中第一條為官方的鏡像$ docker search mongo# 下載官方鏡像的最新版本$ docker pull mongo:latest# 完成后,檢查是否下載成功$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEcentos 7 5e35e350aded 12 days ago 203MBmongo latest 965553e202a4 3 weeks ago 363MBhello-world latest fce289e99eb9 10 months ago 1.84kB

docker只支持linux內核3.x的操作系統,一定要確保內核為3.x,如果不是請升級內核或者更換操作系統版本 使用docker search+鏡像名稱 搜索鏡像,然后用docker pull+鏡像名稱 命令下載鏡像到本地

僅需要簡單幾個命令,我們就擁有了MongoDB的最新鏡像了,后續就可以使用了。

1、修改yum源,指定Docker官方的yum源;2、使用 yum install docker-enginer 安裝Docker,在安裝過程中,很容易出現mirror下載速度太低,導致安裝失敗,只能多運行幾次了。3、安裝成功后,需要

2 啟動

完成MongoDB的鏡像下載后,啟動就非常簡單了,一個命令即可:

從util-linux版本2.23開始,nsenter工具就包含在其中。它用來訪問另一個進程的名字空間。nsenter要正常工作需要有root權限。很不幸,Ubuntu 14.4仍然使用的是util-linux版本2.20。安裝最新版本的util-

$ docker run -itd --name mongo -p 27017:27017 mongo --auth305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c

(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()查詢。

[email protected]:/# mongo --versionMongoDB shell version v4.2.1git version: edf6d45851c0b9ee15548f0f847df141764a317eOpenSSL version: OpenSSL 1.1.1 11 Sep [email protected]:/# mongo> db.version()4.2.1

3.4 創建admin管理用戶

連上數據庫后,我們先創建一個admin用戶,用以管理其它用戶:

> use adminswitched 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 testdbswitched 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,并通過例子演示了如何運行和創建用戶與集合,最后還介紹了兩款非常友好的可視化工具,希望能帶沒有接觸過的人入個門吧。

1.利用image運行一個containersudo docker run-it-net=host tingtingnet=host:讓container可以上網,安裝原來的sudo docker run-it tingting方法安裝是不能聯網的,不知道為什么,加入了-net=host后,container就可以聯網了,但不知道還有其他更好的辦法不,暫且使用這個方法tingting:是image的名字2.在container內安裝jupyter notebookpip install jupyter notebookjupyter notebook是jupyter的名字3.commit新的鏡像sudo docker commit-change='CMD jupyter notebook' serene_carson tingtingNewserene_carson:正在運行的container的名字tingtingNew:想要保存的新的image的名字4.利用新的image生成新的containersudo docker run-it-net=host -v /home/tingting/Dropbox/code/craterDetection/docker:/root/workspace tingtingNew注:這里利用-v命令將本地的文件夾與docker中的文件夾關聯,其中,/home/tingting/Dropbox/code/craterDetection/docker:為本地文件夾;root/workspace:為docker中的文件夾;該命令可以將/home/tingting/Dropbox/code/craterDetection/docker文件夾映射到/root/workspace文件夾tingtingNew為剛剛安裝了jupyter notebook的image5.打開jupyter,利用瀏覽器輸入網址:localhost:8888注:不知道為什么,本機安裝的jupyter地址沒法獲取,所以這里使用了localhost如何獲取localhost的地址?打開一個新的terminal,查看container的地址:sudo docker inspect clever_bohr|grep IPAddress這里的clever_bohr為該正在運行的container的名字內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • springboot整合mongodb的docker開發教程全解
  • docker容器化部署嘗試——多容器通信(node+mongodb+nginx)
  • docker中使用mongodb數據庫詳解(在局域網訪問)
  • 基于docker的mongodb實現授權訪問的方法
  • 關于單臺mongodb實例開啟oplog的過程詳解
  • 大數據環境下mongodb為何要加索引淺析
  • mongodb基礎入門_動力節點java學院整理
  • mongodb 主從復制實例講解
  • mongodb分片集群部署詳解
  • 淺析mongodb性能優化的相關問題
  • mongodb中創建索引需要注意的事項
  • mongodb3.4集群搭建實戰之高可用的分片+副本集
  • mongodb入門教程之常用的運維技術介紹
  • centos6.5中安裝mongodb簡明總結
  • 如何使用docker安裝notebook
  • 如何使用docker安裝應用程序
  • 如何在docker下運行windows程序
  • docker windows 安裝好后怎么用
  • 如何使用 Docker 安裝最新版的 aria2
  • 如何安裝最新版docker
  • 如何安裝指定版本的docker
  • 如何在一個Docker容器里安裝Discourse
  • 如何使用 Docker 安裝最新版的 aria2
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mongodbspringboot整合mongodb的docker開發教程全解docker容器化部署嘗試——多容器通信(node+mongodb+nginx)docker中使用mongodb數據庫詳解(在局域網訪問)基于docker的mongodb實現授權訪問的方法關于單臺mongodb實例開啟oplog的過程詳解大數據環境下mongodb為何要加索引淺析mongodb基礎入門_動力節點java學院整理mongodb 主從復制實例講解mongodb分片集群部署詳解淺析mongodb性能優化的相關問題mongodb中創建索引需要注意的事項mongodb3.4集群搭建實戰之高可用的分片+副本集mongodb入門教程之常用的運維技術介紹centos6.5中安裝mongodb簡明總結mongodb常用操作命令大全mongodb各種查詢操作詳解mongodb數據庫插入、更新和刪除操mongodb 數據庫操作--備份 還原 mongodb插入數據的3種方法mongodb中使用distinct去重的簡單mongodb整庫備份與還原以及單個cmongodb查詢操作限制返回字段的方淺談mysql和mariadb區別(mariadbmongodb 實現遠程連接mongodb db.serverstatus()輸出內容中文注mongodb快速入門筆記(三)之mongodb插入文mongodb系列教程(六):java操作mongodbmongodb 數據類型及mongoose常用curdmongodb索引知識_動力節點java學院整理初識nosql nosql數據庫入門 nosql數據庫基mongodb數據庫文檔操作方法(必看篇)mongodb分片集群部署詳解使用mongodb實現打卡簽到系統的實例代碼mongodb的主從復制及副本集的replset配置
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载