尝试使用 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,请从此链接下载。
启动后,您应该会看到以下画面。

mongodbcompass.png

将以下的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来操作数据库。

广告
将在 10 秒后关闭
bannerAds