对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

使用 Docker 创建本地 Atlas 部署

本教程向您展示如何使用Docker创建本地Atlas部署。在本教程中,我们将使用Docker部署单节点副本集。有关完整且详细的Docker Compose示例,请参阅Docker Compose 示例。

1

要学习;了解更多信息,请参阅Docker文档。

2

示例:

docker pull mongodb/mongodb-atlas-local:latest
3

示例:

docker run -p 27017:27017 mongodb/mongodb-atlas-local
4

要从主机(而不是容器)连接到本地Atlas部署,请将以下命令复制并粘贴到新终端中,并将 {connection_string} 变量替换为您的连接string 。

注意

The following example uses mongosh, but you can use the connection method that you prefer.

mongosh {connection_string}

例子:

mongosh "mongodb://localhost:27017/?directConnection=true"

使用Docker Compose创建本地Atlas部署。有关完整详细的示例,请参阅Docker Compose 示例。

注意

如果您现有使用官方MongoDB Docker映像构建的基于 Docker-Compose 的Atlas实施,并且您希望将其转换为使用Atlas本地开发者映像,请参阅下面的转换为本地开发者实施。

1

要学习;了解更多信息,请参阅Docker文档。

2

示例:

brew install docker-compose

要学习;了解更多信息,请参阅Docker Compose 安装文档。

3

在运行 Docker Compose 的同一目录中创建 docker-compose.yaml文件。有关完整详细的示例,请参阅Docker Compose 示例。

示例:

1services:
2 mongodb:
3 image: mongodb/mongodb-atlas-local
4 environment:
5 - MONGODB_INITDB_ROOT_USERNAME=user
6 - MONGODB_INITDB_ROOT_PASSWORD=pass
7 ports:
8 - 27018:27017
4

以下命令创建启用了MongoDB搜索功能的本地Atlas部署。

示例:

docker-compose up
5

要从主机(而不是容器)连接到本地Atlas部署,请将以下命令复制并粘贴到新终端中,并将 {connection_string} 变量替换为您的连接string 。

注意

The following example uses mongosh, but you can use the connection method that you prefer.

mongosh {connection_string}

示例:

mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
6
docker compose down -v

您可以使用Docker Compose在多次运行中持久保存数据。持久化数据有助于确保数据在运行之间不会丢失。数据在Docker Compose 运行期间保持可用。

1

要学习;了解更多信息,请参阅Docker文档。

2

示例:

brew install docker-compose

要学习;了解更多信息,请参阅Docker Compose 安装文档。

3

更新docker-compose.yaml文件以将必要的数据目录挂载为卷。

示例:

1services:
2 mongodb:
3 hostname: mongodb
4 image: mongodb/mongodb-atlas-local
5 environment:
6 - MONGODB_INITDB_ROOT_USERNAME=user
7 - MONGODB_INITDB_ROOT_PASSWORD=pass
8 ports:
9 - 27019:27017
10 volumes:
11 - data:/data/db
12 - config:/data/configdb
13volumes:
14 data:
15 config:
4

以下命令创建启用了MongoDB搜索功能的本地Atlas部署。

示例:

docker-compose up

您还可以在分离模式下运行Docker Compose。

示例:

docker-compose up -d
5

要从主机(而不是容器)连接到本地Atlas部署,请将以下命令复制并粘贴到新终端中,并将 {connection_string} 变量替换为您的连接string 。

注意

The following example uses mongosh, but you can use the connection method that you prefer.

mongosh {connection_string}

示例:

mongosh "mongodb://user:pass@localhost:27019/?directConnection=true"

您可以为mongodb/mongodb-atlas-local Docker 映像生成依赖项列表。

1

示例:

brew install syft

要学习;了解更多信息,请参阅 syft 自述文件。

2
syft mongodb/mongodb-atlas-local

您可以验证mongodb/mongodb-atlas-local Docker 映像的签名。

1

示例:

brew install cosign

要学习;了解更多信息,请参阅 cosign 安装。

2

示例:

curl -O https://cosign.mongodb.com/mongodb-atlas-local.pem
COSIGN_REPOSITORY="docker.io/mongodb/signatures" cosign verify --private-infrastructure --key=./mongodb-atlas-local.pem "mongodb/mongodb-atlas-local";

要使用Github操作运行mongodb/mongodb-atlas-local Docker映像,请创建一个工作流程文件。 要学习;了解更多信息,请参阅Github Actions 快速入门。

示例:

在.github/workflows目录中创建以下mongodb.yml文件:

on:
push:
branches:
- main
pull_request:
jobs:
run:
runs-on: ubuntu-latest
services:
mongodb:
image: mongodb/mongodb-atlas-local
ports:
- 27017:27017
steps:
- name: install mongosh
run: |
curl --output mongosh.deb https://downloads.mongodb.com/compass/mongodb-mongosh_2.2.1_amd64.deb
sudo dpkg -i mongosh.deb
mongosh --version
- run: mongosh 'mongodb://localhost/?directConnection=true' --eval 'show dbs'

如果您有在 Docker Compose 中运行的现有 Atlas 实施,并且该实施是使用官方 Mongo Docker 映像构建的,则可以参考以下清单,以简化将其转换为 mongodb-atlas-local 映像的过程。

  1. 从 docker-compose.yaml文件中删除任何现有的 command。 由于Docker Compose 定义中的 command 会覆盖 mongodb-atlas-local 映像中定义的 ENTRYPOINT,因此您必须删除任何现有的 command,mongodb-atlas-local 映像才能按设计运行。

  2. 无需为Atlas部署定义运行状况检查,因为此功能内置于 mongodb-atlas-local 映像中。

以下示例说明了可能需要对Docker Compose YAML文件进行的更改:

services:
self_built_atlas_implementation:
image: mongo:8.0
ports:
- 27017:27017
command: ["./entrypoint.sh"] # You may have defined a health check for the database in the entrypoint script.
services:
local_dev_atlas:
image: mongodb/mongodb-atlas-local:8.0
hostname: local_dev_atlas
ports:
- 27017:27017
environment:
- MONGODB_INITDB_ROOT_USERNAME=user
- MONGODB_INITDB_ROOT_PASSWORD=pass
volumes:
- data:/data/db
- config:/data/configdb
volumes:
- data:
- config: