使用 Docker CLI 搭建 MongoDB
1. 运行 MongoDB 容器
首先,我们使用以下命令来启动一个 MongoDB 容器:
docker run -itd --name mongodb_comm -v $PWD
/data:/data/db -p 27017:27017 mongo:4.4 --auth
参数解释:
-itd
: 这三个参数通常一起使用,i
表示交互式模式,t
分配一个伪终端,d
表示后台运行。--name mongodb_comm
: 为容器指定一个名字mongodb_comm
,方便后续的操作和管理。-v $PWD/data:/data/db
: 将宿主机当前目录下的data
目录挂载到容器的/data/db
目录。这样做的目的是将 MongoDB 数据持久化到宿主机上,以便容器重启后数据不会丢失。-p 27017:27017
: 将容器内部的 27017 端口映射到宿主机的 27017端口上,使得外部可以通过宿主机的 27017端口访问 MongoDB。mongo:4.4
: 使用 MongoDB 的4.4
版本镜像。--auth
: 开启 MongoDB 的身份验证,增加数据库安全性。
2. 创建用户
接下来,我们需要创建一个用户,以便能够以验证方式连接到 MongoDB:
docker exec -it mongodb_comm mongo admin
在 MongoDB shell 中执行以下命令创建用户:
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});
这个命令创建了一个名为 root
,密码为 123456
的用户,拥有管理所有数据库的权限和在任何数据库中读写的权限。
3. 连接测试
为了验证是否成功,可以尝试使用以下命令进行连接测试:
db.auth('root', '123456')
4. 插入和查询数据
作为测试,我们可以尝试插入一些数据,然后查询:
db.user.insert({"name":"abc","age":18})
db.user.find()
使用 Docker Compose 搭建 MongoDB
Docker Compose 文件
要使用 Docker Compose 搭建 MongoDB,首先需要创建一个 docker-compose.yml
文件,内容如下:
version: '3.1'
services:
mongodb:
image: mongo:4.4
ports:
- "27017:27017"
volumes:
- ./data:/data/db
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 123456
command: --auth
配置解释:
version
: 指定 Docker Compose 文件格式版本。services
: 定义要运行的服务,这里是mongodb
。image
: 使用的 MongoDB 镜像版本。ports
: 将容器的 27017 端口映射到宿主机的 27017 端口。volumes
: 数据持久化配置,与 CLI 方法相同。environment
: 设置环境变量,这里是初始化时的 root 用户名和密码。command
: 容器启动时执行的命令,这里开启了认证模式。
使用 docker-compose up -d
命令启动服务。