# Docker 部署 MongoDB ## 1. 下载 MongoDB 镜像 ```bash docker pull mongo:latest # 查看已下载的镜像 docker images mongo ``` ## 2. 启动 MongoDB 容器 ```bash docker run -d \ --name mongodb \ -p 27017:27017 \ -v $PWD/data:/data/db \ mongo:latest ``` ### 参数说明 | 参数 | 说明 | |------|------| | `-d` | 后台运行 | | `--name mongodb` | 容器名称 | | `-p 27017:27017` | 端口映射(主机:容器) | | `-v $PWD/data:/data/db` | 数据卷挂载,持久化存储 | ## 3. 配置认证(可选,推荐) ```bash # 创建管理员账号 docker exec -it mongodb mongosh admin # 在 mongosh 中执行 db.createUser({ user: "admin", pwd: "你的密码", roles: [{ role: "root", db: "admin" }] }) # 退出 exit ``` ### 带认证启动 ```bash docker stop mongodb docker rm mongodb docker run -d \ --name mongodb \ -p 27017:27017 \ -v $PWD/data:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=admin \ -e MONGO_INITDB_ROOT_PASSWORD=你的密码 \ mongo:latest --auth ``` ## 4. 连接测试 ```bash # 方式一:使用 mongosh 连接 docker exec -it mongodb mongosh --host 127.0.0.1 # 方式二:从另一容器连接 docker run -it --rm \ --link mongodb:mongo \ mongo:latest \ mongosh --host mongo # 方式三:从主机连接(需要安装 mongosh) mongosh mongodb://admin:密码@localhost:27017 ``` 看到以下提示说明部署成功: ``` It looks like you are trying to access MongoDB over HTTP on the native driver port. ``` ## 5. 常用管理命令 ```bash # 查看容器状态 docker ps | grep mongodb # 查看日志 docker logs -f mongodb # 进入容器 docker exec -it mongodb bash # 停止/启动 docker stop mongodb docker start mongodb ``` ## 6. 数据备份与恢复 ```bash # 备份(数据在挂载的 $PWD/data 目录中) tar -czvf mongodb-backup-$(date +%Y%m%d).tar.gz data/ # 恢复 tar -xzvf mongodb-backup-xxxxxxxx.tar.gz ``` --- > 参考:[MongoDB Docker 官方文档](https://hub.docker.com/_/mongo)