使用docker搭建mongodb

使用 Docker CLI 搭建 MongoDB

1. 运行 MongoDB 容器

首先,我们使用以下命令来启动一个 MongoDB 容器:

bash 复制代码
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:

bash 复制代码
docker exec -it mongodb_comm mongo admin

在 MongoDB shell 中执行以下命令创建用户:

mongodb 复制代码
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});

这个命令创建了一个名为 root,密码为 123456 的用户,拥有管理所有数据库的权限和在任何数据库中读写的权限。

3. 连接测试

为了验证是否成功,可以尝试使用以下命令进行连接测试:

mongodb 复制代码
db.auth('root', '123456')
4. 插入和查询数据

作为测试,我们可以尝试插入一些数据,然后查询:

mongodb 复制代码
db.user.insert({"name":"abc","age":18})

db.user.find()

使用 Docker Compose 搭建 MongoDB

Docker Compose 文件

要使用 Docker Compose 搭建 MongoDB,首先需要创建一个 docker-compose.yml 文件,内容如下:

yaml 复制代码
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 命令启动服务。

相关推荐
IvanCodes11 分钟前
一、Docker:一场颠覆应用部署与运维的容器革命
docker·容器
栗子~~26 分钟前
Milvus docker-compose 部署
docker·容器·milvus
椰汁菠萝1 小时前
ubuntu下免sudo执行docker
ubuntu·docker·免sudo
没有名字的小羊2 小时前
2.安装Docker
运维·docker·容器
xiezhr2 小时前
50 个常用 Docker 命令
运维·docker·容器
退役小学生呀9 天前
三、kubectl使用详解
云原生·容器·kubernetes·k8s
API开发10 天前
苹果芯片macOS安装版Homebrew(亲测) ,一键安装node、python、vscode等,比绿色软件还干净、无污染
vscode·python·docker·nodejs·openssl·brew·homebrew
程序员小潘10 天前
Kubernetes多容器Pod实战
云原生·容器·kubernetes
进击的码码码码N10 天前
Docker 镜像加速
运维·docker·容器
Q_w774210 天前
基于 Docker 的服务部署探索(Day 2)
运维·docker·容器