網站首頁 編程語言 正文
前言
由于使用寶塔面板來配置MongoDB
的BUG太多,實在受不了,今天心血來潮想要使用Docker容器來進行部署。本來以為也就二三十分鐘的事情結果踩坑踩了將近兩個小時,不過萬幸還是成功部署上了
Docker & MongoDB
在開始講之前,我們需要知道Docker
和MongoDB
是什么,雖然這兩個工具已經非常流行,但可能還是有讀者不知道其詳細概念
Docker
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的?Linux或Windows操作系統的機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
MongoDB
MongoDB是一個基于分布式文件存儲?[1]??的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
使用Docker部署MongoDB
Docker的安裝請參照其他文章
在進入我們服務器的終端后就可以開始操作了,首先我們要拉取最新的mongo
鏡像
$ docker pull mongo:latest
使用docker images
來檢查是否成功拉取鏡像
$ docker images
接下來我們就可以讓鏡像跑起來并跑在27017端口
若跑在其他端口會有坑,后面講
$ docker run -itd --name mongo -p 27017:27017 mongo
我們可以使用docker ps
來驗證是否已經跑起來了,下一步我們直接進入容器中
$ docker exec -it mongo /bin/bash
接下來我們不慌著直接使用mongo
命令,因為直接使用的話就會踩坑。我們的目的是部署了MongoDB
并能讓其支持遠程訪問,所以我們需要先去更改它的配置文件,更改配置文件需要使用到vim
,所以我們還需要下載vim
,但我們知道,直接下載的話非常緩慢,所以我們還得給容器換一個源
容器中換源
正則替換成阿里的鏡像可以快速update
$ sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list $ sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list $ apt clean $ apt-get update -y
更改配置
接下來就可以下載vim
并更改配置了
$ apt-get install vim $ vim /etc/mongod.conf.orig
進入到配置我們中將其中的bindIp: 127.0.0.1
注釋掉# bindIp: 127.0.0.1
,或改成0.0.0.0
即可。除此之外,若你MongoDB
部署的端口不是27017,也應該進行替換(坑點之一,對應上文)
在這之后就可以進行連接了
開放端口
我們需要開放端口并還需在服務器添加安全組策略,若兩個中有一個沒開都是訪問不到的
原文鏈接:https://juejin.cn/post/7119064600187764772
相關推薦
- 2023-06-18 Docker之實現掛載的三種方式匯總_docker
- 2022-04-19 賭你會懵的C語言指針進階數組場景解析_C 語言
- 2022-10-30 Redis過期刪除策略與內存淘汰策略_Redis
- 2022-10-17 React?中的?useContext使用方法_React
- 2022-03-08 C++中的對象初始化操作代碼_C 語言
- 2021-11-25 vc控制臺程序關閉事件時的處理方式及注意點詳解_C 語言
- 2022-12-31 一文初探Go語言中的reflect反射包_Golang
- 2022-10-29 C++ 函數模板的重載與實參推斷
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支