尝试使用 Docker Compose 构建 MongoDB,并使用 MongoDB Compass 进行GUI化
环境
MacOS 12.0.1
Docker引擎 v20.10.11
前提 tí)
请放心。没有特别需要准备的东西。
创建Compose文件
我想要使用Docker Hub上的Mongo镜像来进行操作。
version: '3'
services:
mongodb:
container_name: "mongodb"
hostname: mongodb
image: mongo
restart: always
ports:
- 27017:27017
volumes:
- ./db:/data/db
- ./configdb:/data/configdb
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: password
这次,我们将使用Mongo的默认端口27017。因此,我们将容器的27017端口映射到主机的27017端口。
另外,数据库的数据将存储在容器的*/data/*目录下,为了保留数据,我们将设置一个卷。
立即行动
在之前compose文件所在的目录中执行以下命令。
# ↓起動のコマンド
$ docker-compose up -d
# ↓コンテナのbashを立ち上げるコマンド
$ docker-compose exec mongodb bash
# ↓コンテナを停止させるコマンド
$ docker-compose down
可以通过使用 docker-compose ps 命令来确认容器是否已经启动。
$ docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
mongodb "docker-entrypoint.s…" mongodb running 0.0.0.0:27017->27017/tcp
当Mongo启动时,会立即执行mongod,因此无需进行任何操作。如果您感兴趣,请务必尝试查看Docker映像,您会明白的。
将MongoDB图形化
使用MongoDB Compass可以将数据库图形化,并可以显示和操作数据。
据说在web上可以使用mongo-express做类似的操作,但好像不太顺利。所以我们选择MongoDB Compass来进行操作。
顺便说一下,这非常简单。
首先,如果您还没有安装Compass,请从此链接下载。
启动后,您应该会看到以下画面。

将以下的connection string输入到标有”Paste your connection string (SRV or Standard)”的位置,就可以在GUI中显示和操作数据。
mongodb://root:password@localhost:27017
顺便提一下,格式是按照 mongodb://[用户名:密码@]主机1[:端口1][,…主机N[:端口N]][/[默认认证数据库][?选项]] 这样的写法。(来自官方文档的解释)
最後
考虑到未来,我打算使用docker-compose构建MongoDB。在这之后,请按照你喜欢的方式进行操作。
顺便提一下,你可以通过docker-compose exec命令进入容器,并使用mongo命令启动shell来操作数据库。