2020-05-06 16:06:12
在開發前端的時候,常常會碰到想要回到 migration 之前的 MongoDB 資料結構來除錯,如果只使用本地安裝的 MongoDB,操作上會很麻煩,所以這篇文章會說明如何在本機不安裝 MongoDB 的環境下,使用 Docker 準備多份 MongoDB 資料庫。
請確認電腦有安裝 Docker,先準備好要使用的 MongoDB 資料庫備份檔案,大概會是長這樣:
存放的路徑這裡暫定為
~/Downloads/20170622/hahow/...
打開 Terminal,下載 MongoDB(這裡以 2.6 版作為示範)的 Docker image:
$ docker pull mongo:2.6
然後開啟一個新的 MongoDB Docker container,container 名字可以透過 –name 自訂:
$ docker run --detach --name mongo_hahow_20170622 --publish 27017:27017 mongo:2.6
使用 docker inspect 取得 container 的 IP,後面會用到:
$ docker inspect mongo_hahow_20170622 | grep IPAddress
前往剛才存放備份資料庫的位置:
$ cd ~/Downloads
開啟並進入一個暫時性質的 Docker container,用途為 restore 資料庫到 mongo_hahow_20170622 的 container:
$ docker run --interactive --tty --rm --volume $PWD:/tmp mongo:2.6 bash
因為 ~/Downloads 被 volume 在 /tmp 底下,所以可以根據對應的路徑前往該資料庫存放的資料夾位置:
$ cd /tmp
使用 mongorestore 恢復備份資料庫到 mongo_hahow_20170622,IP 記得使用上面 docker inspect 查到的 IP:
$ mongorestore --host 172.17.0.2 --db hahow 20170622/hahow
如果順利 restore 完成之後,就可以離開,它會自動刪除這個一次性的 container:
$ exit
之後如果還有其它版本的 MongoDB 想要切換著使用的話,可以繼續從第一個步驟建立新的 container。
順帶一提,Docker for Mac 有內建一個叫 Kitematic 的 Docker GUI,可以使用它來切換不同版本的 MongoDB:
创建MongoDB Docker镜像
04-14
Ubuntu系统配置Nginx Node.js MongoDB环境
03-19
ubuntu 安装MongoDB
07-01
Docker使用示例(3) – 调试容器
06-16
Docker使用示例(4) – 清理容器和镜像
06-10
Docker命令行参考(11) – Docker load从tar归档文件或STDIN导入镜像
07-20
Docker命令行参考(14) – Docker attach附着到一个运行中的容器
07-19
Docker命令行参考(26) – Docker stats实时显示容器资源使用统计
06-21
Docker命令行参考(4) – Docker inspect显示容器或镜像相关信息
07-19
Docker命令行参考(6) – Docker commit提交容器的更改创建新镜像
07-15
Docker安装配置tomcat jdk
06-21
Docker-postfix, 在 Docker 容器中,使用smtp身份验证( sasldb ) 运行后缀
06-26
Ubuntu 16.04使用Docker部署WordPress
06-13
使用 Docker 搭建 Tomcat 运行环境
07-24
Docker部署zabbix监控系统(nginx mysql)
06-28
MongoDB导入导出备份恢复
06-04
MongoDB日志存储优化
07-02
CentOS 6.x 上搭建Docker
07-12
ubuntu安装MongoDB数据库服务器
05-29
快速入门: Compose和Rails
07-02