MongoDB 是一个开源的基于文档的非关系型数据库,它的数据以 JSON 的形式进行存储。由于项目上用到了 MongoDB,这里就记录一下使用 docker 安装 mongo 的方法。
注:以下示例命令全部以 root 用户执行,可根据自身情况更改相应的命令。
一、拉取镜像
MongoDB 的 Docker 官方镜像页面是:https://hub.docker.com/_/mongo
这里我使用的是最新的镜像标签,可以使用下面的命令来拉取最新的镜像,如需要特定的版本,可以在镜像页面查看所有的标签。
docker pull mongo:latest
二、新建持久化目录
这里呢我把 MongoDB 的数据存储目录给持久化到主机中,因此需要先在主机上新建一个本地目录:
mkdir -p /root/docker/mongodb/data
这里我使用的目录路径为 “/root/docker/mongodb/data“,可以根据自己的情况去更改。
也可以对配置文件进行一个持久化。默认情况下 mongod 不会读取配置文件,因此如果要使用本地的配置文件来启动mongod 不仅需要映射本地配置文件到容器中,还要在 docker run 时指定 mongod 读取配置文件,这个下文会说明,这里先示例新建本地配置文件。首先新建一个本地配置持久化目录:
mkdir -p /root/docker/mongodb/conf
接着编辑配置文件:
vim /root/docker/mongodb/conf/mongod.conf
配置文件的具体内容这里不再给出,可参考官方文档:https://docs.mongodb.com/manual/administration/configuration/
三、运行容器
接下来就是用 docker run 命令来运行一个 MongoDB 容器:
docker run -d
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin
-e MONGO_INITDB_ROOT_PASSWORD=secret
-v /root/docker/mongodb/data:/data/db
-p 27017:27017
--network mongo-network
--name mongo
--restart always
mongo:latest
第一行表示将该容器放置在后台运行。
第二第三行表示配置 mongo 数据库超级管理员账号的用户名和密码。
第四行表示将本地的 /root/docker/mongodb/data 目录映射为容器中的 /data/db 目录,即步骤二中的数据持久化目录。
如果需要映射本地配置文件,这里就需要再加上一行本地配置目录的映射:
-v /root/docker/mongodb/conf:/etc/mongo \
第五行表示将本地的27017端口映射到容器中的27017端口,后面就可以通过主机ip:27017来访问容器中的 mongo
第六行表示使用名为"mongo-network"的虚拟网络,方便其他容器连接 mongo,这个是可选的。
第七行表示给这个容器起一个名字,后面可以通过该名字来管理这个容器。
第八行表示该容器会开机自起。
第九行则是指定使用哪一个镜像和标签。如果需要指定配置文件,则需要在后面加上:
--config /etc/mongo/mongod.conf
运行了之后会返回一个容器ID。我们可以使用该容器的名字或者ID来控制这个容器:
启动
docker start mongo
停止
docker stop mongo
重启
docker restart mongo
开机自起
docker enable mongo
取消开机自起
docker disbale mongo
启动了之后呢就可以通过映射出来的本地27017端口来连接 mongo
评论区