Docker を使用して Microsoft Sql Server を展開するための詳細な手順

Docker を使用して Microsoft Sql Server を展開するための詳細な手順

1 背景

SQL Server 2019 CU3 以降では、Ubuntu 18.04 がサポートされます。

SQL Server 2019 CU10 以降では、Ubuntu 20.04 がサポートされます。

Docker エンジン 1.8 以上

少なくとも2 GBのディスク容量 少なくとも2 GBのRAM

ブログホストマシン:

Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-37-generic x86_64) へようこそ

2 コンテナを作成する

画像をプルする

docker pull mcr.microsoft.com/mssql/server:2019-latest

ミラーを見る

Docker イメージ 
root@dev-virtual-machine:/home/dev# docker イメージ 
リポジトリ タグ イメージ ID 作成 サイズ
mcr.microsoft.com/mssql/server 2019-latest 6db3c5ebc331 3 週間前 1.55GB

コンテナの実行

ドッカー実行 
-e "EULA に同意します" 
-e "SA_PASSWORD=パスワード"    
-p 51433:1433 
--name mssql 
-h mssql    
-d mcr.microsoft.com/mssql/server:2019-最新 
パラメータ例示する
-e "ACCEPT_EULA=Y" エンド ユーザー ライセンス契約への同意を確認するために、ACCEPT_EULA 変数を任意の値に設定します。 SQL Server イメージに必要な設定。
-e “SA_PASSWORD=Passw0rd” 少なくとも 8 文字の長さで、SQL Server のパスワード要件を満たす強力なパスワードを指定します。 SQL Server イメージに必要な設定。
-p 51433:1433 は、ホスト環境の TCP ポート (最初の値) をコンテナーの TCP ポート (2 番目の値) にマッピングします。この例では、SQL Server はコンテナー内の TCP 1433 をリッスンし、ホスト上のポート 1433 に公開されます。
–name sql1 ランダムに生成された名前を使用する代わりに、コンテナーのカスタム名を指定します。複数のコンテナを実行する場合、同じ名前を再利用することはできません。
-h sql1 は、コンテナのホスト名を明示的に設定するために使用されます。指定しない場合は、デフォルトでコンテナ ID になります。 ID はランダムに生成されたシステム GUID です。
mcr.microsoft.com/mssql/server:2019-最新の SQL Server 2019 Ubuntu Linux コンテナ イメージ。

コンテナを表示

root@dev-virtual-machine:/home/dev# docker ps 
コンテナID イメージ コマンド 作成ステータス ポート名
6498220c95f6 mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 24 分前 23 分前にアップ 0.0.0.0:51433->1433/tcp、:::51433->1433/tcp mssql

-h と --name を同じ値に設定すると、ターゲット コンテナーを簡単に識別できます。

3 SAパスワードを変更する

マイクロソフトはSAパスワードの変更を公式に推奨している

SA アカウントは、インストール中に SQL Server インスタンスに作成されるシステム管理者です。 SQL Server コンテナーを作成した後、コンテナー内で echo $SA_PASSWORD を実行することで、指定された SA_PASSWORD 環境変数を検出できます。

SA ユーザーに使用する強力なパスワードを選択してください。

docker exec を使用して sqlcmd を実行し、Transact-SQL を使用してパスワードを変更します。 次の例では、ユーザー入力から古いパスワードと新しいパスワードを読み取ります。

sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd \
-S ローカルホスト -U SA \
 -P "$(read -sp "現在の SA パスワードを入力してください: "; echo "${REPLY}")" \
 -Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "新しい SA パスワードを入力してください: "; echo "${REPLY}")\""

4 mssql のリンク

次の手順では、SQL Server コマンド ライン ツール sqlcmd を使用して、コンテナー内から SQL Server に接続します。

実行中のコンテナ内で対話型 Bash シェルを起動するには、docker exec -it コマンドを使用します。 次の例では、mssql はコンテナーの作成時に --name パラメーターで指定された名前です。

sudo docker exec -it mssql "bash"

ローカルに接続するには、コンテナー内で sqlcmd を使用します。 デフォルトでは、sqlcmd はパス内に存在しないため、完全なパスを指定する必要があります。

/opt/mssql-tools/bin/sqlcmd -S ローカルホスト -U SA -P "パスワード"

成功した場合、sqlcmd コマンド プロンプトが表示されます: 1>

5. コンテナ外でmssqlをリンクする

1. コンテナをホストしているコンピューターの IP アドレスを見つけます。 Linux では、ifconfig または ip addr を使用します。 Windows では、ipconfig を使用します。

2. この例では、クライアントコンピュータにsqlcmdツールをインストールします。

3. コンテナー内のポート 1433 にマップされる IP アドレスとポートを指定して、sqlcmd を実行します。 この場合、それはホスト上のポート 51433 なので、ここで使用します。 接続を許可するには、ファイアウォールで適切な受信ポートを開く必要もあります。

4. Transact-SQL コマンドを実行します。 終了したら、QUIT と入力します。

Navicat リンク ノート

Navicat を使用して Sqlserver データベースに接続するときに、ポート番号がデフォルトのポート番号でない場合は、ホスト IP の後にコンマとポート番号を使用する必要があります。

Navicat の場合、上記の設定後、SQL Server Native Client 10.0 ドライバーをインストールする必要があります。インストール プログラムは、Navicat ソフトウェアのルート ディレクトリにある sqlncli_x64.msi です。32 ビット バージョンも利用可能です。インストールが完了すると、[詳細設定] タブの Native Client ドライバーに、Sqlserver 接続を作成するときに選択できるドロップダウン オプションが表示されます。

要約する

これで、Docker を使用した Microsoft Sql Server の展開の詳細な手順に関するこの記事は終了です。Docker を使用した Microsoft Sql Server の展開の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker 経由で Linux システムに SQL Server データベースをインストールする
  • DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします
  • SQL Server 2019 Always On クラスターの Docker デプロイメントの実装
  • Docker を使用した SQL Server の実行の実装
  • Docker を使用して Microsoft SQL Server 2017 を実行する方法
  • DockerコンテナにMSSQLをデプロイする

<<:  CSS における px、em、rem、pt の特徴、違い、変換について詳しく説明します。

>>:  HTML メタタグの一般的な使用例のコレクション

推薦する

WeChatアプレットのスクロールビューが左右にスライドできない問題を解決する方法

私は現在、自分自身の小さなプログラム プロジェクトに取り組んでいます。プロフェッショナルなフロントエ...

Vue3.0でカスタム命令を書くための簡単な手順

序文Vue には、v-if、v-bind、v-on などの豊富な組み込みディレクティブが用意されてい...

MySQL のマスタースレーブレプリケーションと読み取り書き込み分離の原理と使用法の詳細な説明

この記事では、例を使用して、MySQL マスター/スレーブ レプリケーションと読み取り/書き込み分離...

ネイティブ JavaScript 継承方法とその長所と短所の詳細な説明

目次序文プロトタイプ継承アドバンテージ欠点コンストラクタの継承アドバンテージ欠点組み合わせ継承寄生的...

MySQLオンラインログライブラリの移行例

最近の事例をお話ししましょう。オンライン Alibaba Cloud RDS 上のゲーム ログ ライ...

Docker での Jenkins と Docker を使用した継続的デリバリー

1. 継続的デリバリーとは何かソフトウェア製品の出力プロセスは、ソフトウェアがいつでもリリースできる...

JS の compose 関数と pipe 関数の使い方の詳細な説明

目次作成機能配列プロトタイプの削減Array.prototype.reduceRightパイプ関数作...

DockerでPython環境をパッケージ化するプロセスの詳細な説明

docker パッケージング Python 環境の手順は次のとおりです。 1 pip listの下に...

ディスク容量不足による MySQL レプリケーション障害の解決方法

目次ケースシナリオ問題を解決するまとめケースシナリオ本日、オンラインで問題が発見されました。監視範囲...

Centos6 で 20TB を超えるディスクをパーティション分割してフォーマットするためのサンプル コード

1. サーバー環境の構成: 1. ディスクパーティションを確認します。最近、あるプロジェクト内のサー...

MySQLテーブル内の重複データをクエリする方法

hk_test(ユーザー名、パスワード) に値を挿入 ('qmf1', '...

VMware ESXi 5.5 の展開および構成図のプロセス

目次1. インストール要件2. OSイメージのダウンロード3. VMware Workstation...

Centos8 で Apache httpd2.4.37 を使用して Web サーバーをインストールする詳細な手順

ステップ 1: yum install httpd -y #httpd サービスをインストールします...

meta name="" content="の機能の詳細な説明

1. 文法: <meta name="名前" content="...

vue プロジェクトのデプロイと Nginx でのプロキシ設定の問題の分析

1. nginxをインストールして起動する # nginxをインストールする sudo apt-ge...