Docker を使用したローカル Atlas 配置の作成
項目一覧
このチュートリアルでは、Docker を使用してローカル Atlas 配置を作成する方法を説明します。 このチュートリアルでは、Docker を使用して単一ノードのレプリカセットを配置します。
重要
パブリック プレビュー
Docker および Docker Compose でのローカル配置は、パブリック プレビューとして利用できます。 機能および関連するドキュメントは、パブリック プレビュー ステージでいつでも変更される可能性があります。 質問をしたり、フィードバックを提供したりするには、 Atlas CLI ローカル開発コミュニティ フォーラム を参照してください。
Docker を使用したローカル Atlas 配置の作成
Atlas のローカル配置に接続します。
ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string}
変数を接続文字列に置き換えます。
注意
次の例ではmongosh
を使用していますが、お好みの接続方法を使用できます。
mongosh {connection_string}
例:
mongosh "mongodb://localhost:27017/?directConnection=true"
mongosh "mongodb://user:pass@localhost:27017/?directConnection=true"
Docker Composer を使用したローカル Atlas 配置の作成
Docker Compose を使用してローカル Atlas 配置を作成します。
注意
公式のMongoDB Dockerイメージを使用してビルドした、既存の Docker-Compose ベースの Atlas実装があり、Atlas ローカル Dev イメージを使用するように変換する場合は、以下の「 ローカル Dev 実装への変換 」を参照してください。
Atlas のローカル配置に接続します。
ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string}
変数を接続文字列に置き換えます。
注意
次の例ではmongosh
を使用していますが、お好みの接続方法を使用できます。
mongosh {connection_string}
例:
mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
Docker Composer による実行間でのデータの永続化
Docker Composer を使用すると複数の実行にわたってデータを永続化できます 。データを永続化すると、実行間でデータが失われるのを防ぐことができます。 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:
Docker Composer を実行します。
次の コマンドは、Atlas Search 機能が有効になっているローカル Atlas 配置を作成します。
例:
docker-compose up
分離モードで Docker Compose を実行することもできます。
例:
docker-compose up -d
Atlas のローカル配置に接続します。
ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string}
変数を接続文字列に置き換えます。
注意
次の例ではmongosh
を使用していますが、お好みの接続方法を使用できます。
mongosh {connection_string}
例:
mongosh "mongodb://user:pass@localhost:27019/?directConnection=true"
依存関係のリストの生成
mongodb/mongodb-atlas-local
Docker イメージの依存関係のリストを生成できます。
Install syft.
例:
brew install syft
詳しくは、 syft README を参照してください。
イメージ署名の検証
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 デプロイメントに変換
公式の実装mongo Dockerイメージを使用して構築したDocker Compose で実行中中の既存の Atlas がある場合は、次のチェックリストを参照して、 mongodb-atlas-local イメージへの変換を簡素化できます。
既存の
command
をdocker-compose.yaml
ファイルから削除します。 Docker複合定義のcommand
はmongodb-atlas-local
イメージで定義されたENTRYPOINT
を上書きするため、mongodb-atlas-local
イメージが設計どおりに実行されるようにするには、既存のcommand
を削除する必要があります。この機能は
mongodb-atlas-local
イメージに組み込まれているため、Atlas 配置のヘルスチェックを定義する必要はありません。
Dockerによる更新の例
次の例は、 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: