Docs Menu
Docs Home
/ /
Atlas CLI
/ /

Docker を使用したローカル Atlas 配置の作成

項目一覧

  • Docker を使用したローカル Atlas 配置の作成
  • Docker Composer を使用したローカル Atlas 配置の作成
  • Docker Composer による実行間でのデータの永続化
  • 依存関係のリストの生成
  • イメージ署名の検証
  • Githubアクションでイメージを実行

このチュートリアルでは、Docker を使用してローカル Atlas 配置を作成する方法を説明します。 このチュートリアルでは、Docker を使用して単一ノードのレプリカセットを配置します。

1

詳しくは、 Dockerのドキュメントを参照してください。

2

例:

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

例:

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 インスタンスへの接続を自動化します。

  1. 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"
  2. 以下のコマンドを実行して、ファイルを実行可能にします。

    chmod +x mongodb-atlas-local.sh
  3. 実行可能ファイルを実行します。

    ./mongodb-atlas-local.sh
4

ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string} 変数を接続文字列に置き換えます。

注意

次の例ではmongoshを使用していますが、お好みの接続方法を使用できます。

mongosh {connection_string}

例:

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

Docker Compose を使用してローカル Atlas 配置を作成します。

1

詳しくは、 Docker のドキュメント を参照してください。

2

例:

brew install docker-compose

詳しくは、 Docker Compose のインストールに関するドキュメント を参照してください。

3

Docker Composer を実行するのと同じディレクトリにdocker-compose.yamlファイルを作成します。

例:

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

次の コマンドは、Atlas Search 機能が有効になっているローカル Atlas 配置を作成します。

例:

docker-compose up
5

ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string} 変数を接続文字列に置き換えます。

注意

次の例ではmongoshを使用していますが、お好みの接続方法を使用できます。

mongosh {connection_string}

例:

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

Docker Composer を使用すると複数の実行にわたってデータを永続化できます 。データを永続化すると、実行間でデータが失われるのを防ぐことができます。 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

次の コマンドは、Atlas Search 機能が有効になっているローカル Atlas 配置を作成します。

例:

docker-compose up

分離モードで Docker Compose を実行することもできます。

例:

docker-compose up -d
5

ホスト(コンテナではない)からローカルAtlas配置に接続するには、次のコマンドをコピーして新しいターミナルに貼り付け、{connection_string} 変数を接続文字列に置き換えます。

注意

次の例ではmongoshを使用していますが、お好みの接続方法を使用できます。

mongosh {connection_string}

例:

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

mongodb/mongodb-atlas-local Docker イメージの依存関係のリストを生成できます。

1

例:

brew install syft

詳しくは、 syft README を参照してください。

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";

mongodb/mongodb-atlas-localDockerアクションで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'

戻る

ローカル配置の作成