1.版本选取
-
访问mongodb的镜像仓库地址:https://hub.docker.com/_/mongo?tab=tags&page=1
-
这里选取最新版本进行安装,如果想安装其他的可用版本,可以使用命令
docker search mongo
来查看
2.拉取最新版本镜像
这里执行命令sudo docker pull mongo:latest
拉取最新版的mongodb镜像文件
等待镜像拉取完成后,通过命令sudo docker images
查看下拉取的镜像,可以看到,已经成功拉取到了本地
3.3.开始运行
创建一个文件夹,用作mongodb的数据目录挂载
运行启动命令docker run -p 27017:27017 -v /Users/alice/Documents/data/db --name mongodb -d mongo
在上面的命令中,几个命令参数的详细解释如下:
- -p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
- -v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
- –name 为设置该容器的名称
- -d 设置容器以守护进程方式运行
通过命令docker ps
查看容器启动运行情况
可以看到mongo容器已经成功运行起来了
使用/Users/alice/Documents/data/db
报错:
docker run -p 27017:27017 -v /alice/data/db:/data/db --name mongodb -d mongo
45fa1bd201e226a4ced69daf31f4dff2607f33540b3fbb77a08f3f90cb5a03c6
docker: Error response from daemon: Mounts denied:
The path /alice/data/db is not shared from the host and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.
See https://docs.docker.com/docker-for-mac for more info.
目前有可能是一个 Docker 的 Bug,因为 /alice/data/db是挂载到已经默认添加 /Users文件共享,但是它还是报错,因此我们需要做一点小修改.
解决方法
启动命令为:docker run -p 27017:27017 -v ${HOME}/docker/alice/data/db:/data/db --name mongodb -d mongo
参考文章链接:
https://www.cnblogs.com/xiao-xue-di/p/14185308.html
docker中使用mongodb导入数据
- 先将宿主机上的数据copy到容器中(拷贝到mongodb的bin目录下,可以在进入mongodb容器的bin目录之后通过ls来查看是否拷贝成功)
- 导入数据库
docker cp /Users/alice/Documents/eportal mongodb:/bin/
- 导入json文件
docker cp /Users/alice/Desktop/data/employees.json mongodb:/bin/
- 导入数据库
- 进入容器
docker exec -it mongodb /bin/bash
- 恢复到数据库实例
mongorestore -d eportal /bin/eportal
mongoimport -h 127.0.0.1 -d eportal -c departments departments.json
- -d 数据库名
- -c 集合名字
docker中导出mongodb的数据
- 1.进入容器命令
docker exec -it mongodb /bin/bash
- 2.到处容器中的数据
- 导出数据库
mongodump -h 127.0.0.1 --port 27017 -d eportal (数据库名称) -o /alice(容器中的文件夹地址)
- 导出集合数据
mkdir alice
//新建文件夹
mongoexport -h 127.0.0.1 --port 27017 -d eportal -c assets -o /alice/assets.json
- 导出数据库
- 3.导出道真机
docker cp mongodb:/alice /Users/alice/Desktop/data