如果要使用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)的容器了!
如果啟動某一容器出錯的話,如:
原因是因?yàn)閙ysql的服務(wù)器沒有關(guān)閉,所以可以關(guān)閉mysql的服務(wù)器就可以了。
關(guān)閉某一容器的服務(wù):
$ service docker stop
啟動nodebb服務(wù)器出錯:
比較詭異的事情:
如果本地mongo數(shù)據(jù)庫中已經(jīng)存在某一數(shù)據(jù)庫,那么就不能成功在docker的mongo容器創(chuàng)建該數(shù)據(jù)庫,雖然可以成功的use nodebb創(chuàng)建,也可以成功的插入數(shù)據(jù),但是很奇怪的就是,查看所有的數(shù)據(jù)庫的時候,就沒有該數(shù)據(jù)庫:如下圖:
解決方法:
將本地?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