使用 Docker 创建本地 Atlas 部署
在此页面上
本教程向您展示如何使用 Docker 创建本地 Atlas 部署。 在本教程中,我们将使用 Docker 部署单节点副本集。
使用 Docker 创建本地 Atlas 部署
安装并启动 Docker。
要学习;了解详情,请参阅 Docker文档。
运行 Docker 映像。
示例:
docker run -p 27017:27017 mongodb/mongodb-atlas-local
docker run -e MONGODB_INITDB_ROOT_USERNAME=user -e MONGODB_INITDB_ROOT_PASSWORD=pass -p 27017:27017 mongodb/mongodb-atlas-local
要自动执行Atlas的容器化部署,您需要等待容器处于健康状态,然后才能连接到Atlas。
以下示例演示了在Docker中部署Atlas映像并轮询Docker以检查容器的状态。 一旦容器处于健康状态,脚本就会自动使用Mongosh连接到Atlas实例。
创建一个名为
mongodb-atlas-local.sh
的文件,并将以下脚本粘贴到新文件中。Start mongodb-atlas-local container echo "Starting the container" CONTAINER_ID=$(docker run --rm -d -P mongodb/mongodb-atlas-local:latest) echo "waiting for container to become healthy..." function wait() { CONTAINER_ID=$1 echo "waiting for container to become healthy..." for _ in $(seq 120); do STATE=$(docker inspect -f '{{ .State.Health.Status }}' "$CONTAINER_ID") case $STATE in healthy) echo "container is healthy" return 0 ;; unhealthy) echo "container is unhealthy" docker logs "$CONTAINER_ID" stop exit 1 ;; *) sleep 1 esac done echo "container did not get healthy within 120 seconds, quitting" docker logs mongodb_atlas_local stop exit 2 } wait "$CONTAINER_ID" EXPOSED_PORT=$(docker inspect --format='{{ (index (index .NetworkSettings.Ports "27017/tcp") 0).HostPort }}' "$CONTAINER_ID") Build the connectionstring CONNECTION_STRING="mongodb://127.0.0.1:$EXPOSED_PORT/test?directConnection=true" Example usage of the connection string to connect to mongosh mongosh "$CONNECTION_STRING" 运行以下命令以使文件可执行。
chmod +x mongodb-atlas-local.sh 运行可执行文件。
./mongodb-atlas-local.sh
连接到本地 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 部署。
安装并启动 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'