使用docker中的數(shù)據(jù)庫mongo

如果要使用docker,一個強(qiáng)大的類似虛擬機(jī)的容器,然后目前我的docker是裝在我的recruiting-system項(xiàng)目下的,所以想要使用docker,就必須切換到該項(xiàng)目目錄下,在使用docker。

首先要先啟動docker的服務(wù)器:
$ [sudo] service docker restart

啟動docker中所有的容器:
$ docker-compose up -d

啟動指定的容器:
$ docker-compose up -d mysql

查看目前已經(jīng)啟動的容器:
$ docker ps

進(jìn)入指定的容器:
$ docker exec -it assembly_mongo_1 bash
或者:$ docker exec -it c6258a26bb98 bash
*#assembly_mongo_1是容器名,是通過docker ps命令查看得到的。

然后就可以使用相應(yīng)的容器了!

docker ps 結(jié)果

如果啟動某一容器出錯的話,如:

說mysql的端口號被占用

原因是因?yàn)閙ysql的服務(wù)器沒有關(guān)閉,所以可以關(guān)閉mysql的服務(wù)器就可以了。
關(guān)閉某一容器的服務(wù):
$ service docker stop

啟動nodebb服務(wù)器出錯:

nodebb不能連接到數(shù)據(jù)庫mongo
比較詭異的事情:

如果本地mongo數(shù)據(jù)庫中已經(jīng)存在某一數(shù)據(jù)庫,那么就不能成功在docker的mongo容器創(chuàng)建該數(shù)據(jù)庫,雖然可以成功的use nodebb創(chuàng)建,也可以成功的插入數(shù)據(jù),但是很奇怪的就是,查看所有的數(shù)據(jù)庫的時候,就沒有該數(shù)據(jù)庫:如下圖:

奇怪的docker的mongo
當(dāng)前數(shù)據(jù)哭nodebb也沒有任何的表

解決方法:
將本地?cái)?shù)據(jù)庫中的nodebb數(shù)據(jù)庫導(dǎo)出,然后導(dǎo)入到docker的mongo中:
先切換到一個目錄(隨便):

導(dǎo)出數(shù)據(jù):

首先要保證我需要導(dǎo)出數(shù)據(jù)的數(shù)據(jù)庫的服務(wù)器是啟動著的:
然后去系統(tǒng)的任何目錄下:
1.執(zhí)行如下命令,將nodebb數(shù)據(jù)庫下的objects表導(dǎo)出,生成objects.json文件

$ mongoexport --db nodebb --collection objects --out objects.json
*#會在當(dāng)前目錄下生成一個文件objects.json

2.在同樣的目錄下,執(zhí)行如下命令,將sessions.json中的數(shù)據(jù)導(dǎo)入nodebb數(shù)據(jù)庫的sessions表中

$ mongoexport --db nodebb --collection sessions --out  sessions.json
*#會在當(dāng)前目錄下生成一個文件sessions.json
導(dǎo)入數(shù)據(jù):

導(dǎo)數(shù)據(jù)之前,數(shù)據(jù)庫中一定要創(chuàng)建有你要導(dǎo)入數(shù)據(jù)的數(shù)據(jù)庫
必須在同樣的目錄下,也就是剛剛導(dǎo)出的文件objects.json,sessions.json
所在的目錄:
首先要保證要導(dǎo)入數(shù)據(jù)的數(shù)據(jù)庫的服務(wù)器,才能向數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù),比如我要導(dǎo)入數(shù)據(jù)到docker的mongo數(shù)據(jù)庫中,我就必須要把docker中的mongo啟動著。

$ mongoimport --db nodebb --collection objects --file  objects.json
$ mongoimport --db nodebb --collection sessions --file  sessions.json
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容