如果要使用docker,一个强大的类似虚拟机的容器,然后目前我的docker是装在我的recruiting-system项目下的,所以想要使用docker,就必须切换到该项目目录下,在使用docker。
首先要先启动docker的服务器:
$ [sudo] service docker restart
启动docker中所有的容器:
$ docker-compose up -d
启动指定的容器:
$ docker-compose up -d mysql
查看目前已经启动的容器:
$ docker ps
进入指定的容器:
$ docker exec -it assembly_mongo_1 bash
或者:$ docker exec -it c6258a26bb98 bash
*#assembly_mongo_1是容器名,是通过docker ps命令查看得到的。
然后就可以使用相应的容器了!
如果启动某一容器出错的话,如:
原因是因为mysql的服务器没有关闭,所以可以关闭mysql的服务器就可以了。
关闭某一容器的服务:
$ service docker stop
启动nodebb服务器出错:
比较诡异的事情:
如果本地mongo数据库中已经存在某一数据库,那么就不能成功在docker的mongo容器创建该数据库,虽然可以成功的use nodebb创建,也可以成功的插入数据,但是很奇怪的就是,查看所有的数据库的时候,就没有该数据库:如下图:
解决方法:
将本地数据库中的nodebb数据库导出,然后导入到docker的mongo中:
先切换到一个目录(随便):
导出数据:
首先要保证我需要导出数据的数据库的服务器是启动着的:
然后去系统的任何目录下:
1.执行如下命令,将nodebb数据库下的objects表导出,生成objects.json文件
$ mongoexport --db nodebb --collection objects --out objects.json
*#会在当前目录下生成一个文件objects.json
2.在同样的目录下,执行如下命令,将sessions.json中的数据导入nodebb数据库的sessions表中
$ mongoexport --db nodebb --collection sessions --out sessions.json
*#会在当前目录下生成一个文件sessions.json
导入数据:
导数据之前,数据库中一定要创建有你要导入数据的数据库
必须在同样的目录下,也就是刚刚导出的文件objects.json,sessions.json
所在的目录:
首先要保证要导入数据的数据库的服务器,才能向数据库中导入数据,比如我要导入数据到docker的mongo数据库中,我就必须要把docker中的mongo启动着。
$ mongoimport --db nodebb --collection objects --file objects.json
$ mongoimport --db nodebb --collection sessions --file sessions.json