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 メタタグの一般的な使用例のコレクション

推薦する

Win10 は Tsinghua ソースを使用して pytorch-GPU バージョンをすばやくインストールします (推奨)

Cudaがインストールされているかどうかを確認してくださいアナコンダプロンプトに入力nvcc -V...

Node.js の TCP 接続処理のコア プロセス

数日前、友人と Node.js の epoll とリクエスト処理に関する知識を交換しました。今日は、...

Linux に JDK1.8 をインストールするための詳細なチュートリアル

1. 設置前の清掃 rpm -qa | grep jdk rpm -qa | grep gcj yu...

MAC 上の MySQL の初期パスワードを忘れた場合の対処方法

MACでMySQLの初期パスワードを忘れた問題を解決する方法を参考までに共有します。具体的な内容は次...

MySQLの実行原理、論理階層化、データベース処理エンジンの変更について詳しく説明します

長い間 MySQL を使ってきたので、SQL 文はすでに覚えていると思います。そこで、その実行原理を...

Eclipseを使用してMySQLデータベースに接続する方法を説明します

序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...

WebページでjQueryを参照する方法

CDN(コンテンツ配信ネットワーク)を通じて参照できます。 jQuery は Google と Mi...

Linux システムでのユーザー管理の概要

目次1. ユーザーとユーザーグループの重要性1) ユーザーの存在意義2) ユーザーグループの重要性2...

JavaScriptの再帰の詳細

目次1. 再帰とは何ですか? 2. 再帰を使って数学の問題を解く1. 1 * 2 * 3 * 4 …...

MySQLでトリガーを作成する方法

この記事の例では、参考のためにMySQLトリガーを作成するための具体的なコードを共有しています。具体...

MySQLデーモンの起動に失敗したエラーの解決方法

MySQLデーモンの起動に失敗したエラーの解決方法数日前、公開されたウェブサイトはこれらのアクティビ...

Docker で Oracle 11g イメージ構成をプルダウンする際の問題を分析する

1. イメージをプルするdocker pull レジストリ.cn-hangzhou.aliyuncs...

英語のシングルクォーテーション「''」を含むSQLの記述の失敗について徹底解説

問題が発生しました。情報の編集をテストする際、編集した内容に一重引用符 (') が含まれてい...

MySQLで指定した時間前にレコードを自動的に削除する方法

イベントについて: MySQL 5.1 では、イベントの概念が導入され始めました。イベントは「時間ト...

HTML iframe 使用状況の概要の収集

Iframe 使用状況の詳細な分析<iframe frameborder=0 width=17...