使用 Docker 创建本地 Atlas 部署
在此页面上
本教程向您展示如何使用 Docker 创建本地 Atlas 部署。 在本教程中,我们将使用 Docker 部署单节点副本集。
重要
公开预览版
Docker和Docker Compose 中的本地部署以公共预览版形式提供。 在公共预览阶段,该功能和相应的文档可能随时更改。 要提问和提供反馈,请参阅 Atlas CLI本地开发社区论坛。
使用 Docker 创建本地 Atlas 部署
安装并启动 Docker。
要了解更多信息,请参阅 Docker 文档。
连接到本地 Atlas 部署。
要从主机(而不是容器)连接到本地Atlas部署,请将以下命令复制并粘贴到新终端中,并将 {connection_string}
变量替换为您的连接string 。
注意
以下示例使用mongosh
,但您可以使用自己喜欢的连接方法。
mongosh {connection_string}
例子:
mongosh "mongodb://localhost:27017/?directConnection=true"
mongosh "mongodb://user:pass@localhost:27017/?directConnection=true"
使用 Docker Compose 创建本地 Atlas 部署
使用 Docker Compose 创建本地 Atlas 部署。
注意
如果您现有使用官方MongoDB Docker映像构建的基于 Docker-Compose 的Atlas实施,并且您希望将其转换为使用Atlas本地开发者映像,请参阅下面的转换为本地开发者实施。
安装并启动 Docker。
要了解更多信息,请参阅 Docker 文档。
安装 Docker Compose。
示例:
brew install docker-compose
要了解更多信息,请参阅 Docker Compose 安装文档。
连接到本地 Atlas 部署。
要从主机(而不是容器)连接到本地Atlas部署,请将以下命令复制并粘贴到新终端中,并将 {connection_string}
变量替换为您的连接string 。
注意
以下示例使用mongosh
,但您可以使用自己喜欢的连接方法。
mongosh {connection_string}
示例:
mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
使用 Docker Compose 在运行中持久保存数据
您可以使用 Docker Compose 在多次运行中持久保存数据 。持久化数据有助于确保数据在运行之间不会丢失。 数据在 Docker Compose 运行期间保持可用。
安装并启动 Docker。
要了解更多信息,请参阅 Docker 文档。
安装 Docker Compose。
示例:
brew install docker-compose
要了解更多信息,请参阅 Docker Compose 安装文档。
创建 docker-compose.yaml
文件。
更新docker-compose.yaml
文件以将必要的数据目录挂载为卷。
示例:
1 services: 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 13 volumes: 14 data: 15 config:
连接到本地 Atlas 部署。
要从主机(而不是容器)连接到本地Atlas部署,请将以下命令复制并粘贴到新终端中,并将 {connection_string}
变量替换为您的连接string 。
注意
以下示例使用mongosh
,但您可以使用自己喜欢的连接方法。
mongosh {connection_string}
示例:
mongosh "mongodb://user:pass@localhost:27019/?directConnection=true"
生成依赖项列表
您可以为mongodb/mongodb-atlas-local
Docker 映像生成依赖项列表。
安装 syft。
示例:
brew install syft
要了解更多信息,请参阅 syft 自述文件。
验证映像签名
您可以验证mongodb/mongodb-atlas-local
Docker 映像的签名。
安装 cosign。
示例:
brew install cosign
要了解更多信息,请参阅 cosign 安装。
使用Github操作运行映像
要使用mongodb/mongodb-atlas-local
Docker Github操作运行 映像,请创建一个工作流程文件。要了解更多信息,请参阅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'
将官方映像转换为本地Atlas部署
如果您有在Docker Compose 中运行的现有Atlas实施,并且该实施是使用官方Mongo Docker映像构建的,则可以参考以下清单,以简化将其转换为 mongodb-atlas-local 映像的过程。
从
docker-compose.yaml
文件中删除任何现有的command
。由于Docker Compose 定义中的command
会覆盖mongodb-atlas-local
映像中定义的ENTRYPOINT
,因此您必须删除任何现有的command
,mongodb-atlas-local
映像才能按设计运行。无需为Atlas部署定义运行状况检查,因为此功能内置于
mongodb-atlas-local
映像中。
Docker Compose 更新示例
以下示例说明了可能需要对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: