みなさん、こんにちは。今日は、公式イメージの上に独自のカスタムSQLServerイメージを作成する方法について説明します。
これは、新しいチームメンバーがチームに参加する場合など、複数のシナリオで非常に役立ちます。 SQL Serverの新しいインスタンスを提供する代わりに、初期設定のイメージを取得して、プルするだけで作業の準備を整えることができます
前提条件
- DockerDesktopがマシン上で稼働しています。ここからダウンロードできますhttps://docs.docker.com/v17.09/docker-for-windows/install/
- Docker Hubのアカウントを使用して、カスタムSqlServerドッカーイメージを公開してプルできるようにします
- dockerhubmcr.microsoft.com/mssql/server:2017-latestで入手可能な公式イメージから新しいSQLServerコンテナーのインスタンスを実行しています。
docker run -e "ACCEPT_EULA=Y" "SA_PASSWORD=MYPASSWORD123" -p 1433:1433 --name MyContainerName -d mcr.microsoft.com/mssql/server:2017-latest
SQLServerのセットアップ🔥
- サーバーを起動して実行したら、ホストのIPアドレスを使用してSQL ServerManagementStudioを使用してSQLServerにログインします
- ユーザー名はSUになります パスワードはMYPASSWORD123 コンテナを実行するために上記のコマンドで使用されるように
- 次に、データベース、テーブルなどのサーバーを手動で、または任意のバックアップファイルを使用してセットアップできます
- これでデータベースが配置されました。次に誰かがイメージをプルしたときにデータベースを手動でインポートする必要がないように、このセットアップのイメージを作成します。
カスタムDockerイメージを作成する
- まず、コマンドを使用して実行中のコンテナを停止します
docker stop MyContainerName
- 次に、変更をコンテナにプッシュして、コンテナのイメージを作成できるようにします
docker commit MyContainerName
- 次に、コマンドを使用してリストから特定のコンテナのイメージをコピーします
Docker images
- 新しく作成されたイメージにはリポジトリとタグがありません。次のコマンドを実行して、画像にタグを付けます
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>
例:docker tag a82e969d1395 rajatsrivas / myownsql:sqlCustomImage
- これでイメージが作成され、イメージを使用してコンテナを作成できます
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
- ローカルのDockerDesktopでdockerhubにログインしている場合、この手順はスキップされます。それ以外の場合は、コマンドプロンプトを使用してログインします
docker login -username=rajatsrivas
- 次の行にパスワードを入力し、最後にイメージをDockerHubリポジトリにプッシュします
docker push rajatsrivas/myownsql
- https://hub.docker.com/にアクセスします
- Dockerハブにプッシュした画像が必要です
カスタムイメージをプルして実行します🏃♂️
- コマンドを使用して、任意のマシンにイメージをプルします
docker pull rajatsrivas/myownsql:latest
- コンテナを実行し、SSMS上のサーバーにアクセスします。サーバーには、前の手順でインポートおよびセットアップされたデータベースが含まれている必要があります
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest
結論
つまり、利用可能な公式のDockerイメージの上にカスタムイメージを実装しました。
これはオンボーディングの非常に小さなステップですが、サンドボックス環境を非常に迅速かつ効率的にセットアップするために同様の実装を活用できます。
これがお役に立てば幸いです。学び続け、構築し続ける