使用docker搭建mongodb

使用 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 命令启动服务。

相关推荐

  1. 使用dockermongodb

    2024-03-15 05:42:02       36 阅读
  2. docker-composeMongoDB

    2024-03-15 05:42:02       32 阅读
  3. 使用dockersquoosh

    2024-03-15 05:42:02       38 阅读
  4. 使用dockerchromium

    2024-03-15 05:42:02       46 阅读
  5. 使用DockerJellyfin

    2024-03-15 05:42:02       61 阅读
  6. 使用dockerwebtop

    2024-03-15 05:42:02       38 阅读
  7. 使用dockerhomarr

    2024-03-15 05:42:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 05:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 05:42:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 05:42:02       82 阅读
  4. Python语言-面向对象

    2024-03-15 05:42:02       91 阅读

热门阅读

  1. Linux系统之部署react-tetris俄罗斯方块小游戏

    2024-03-15 05:42:02       36 阅读
  2. uniapp顶部状态栏设置(适配刘海屏)

    2024-03-15 05:42:02       43 阅读
  3. 计算机网络之网络层概念整理(上)

    2024-03-15 05:42:02       35 阅读
  4. Spring中的注释

    2024-03-15 05:42:02       37 阅读
  5. SpringCloudGateway之限流集成篇

    2024-03-15 05:42:02       39 阅读
  6. 前端框架的发展史

    2024-03-15 05:42:02       45 阅读
  7. Swift 单元测试

    2024-03-15 05:42:02       33 阅读