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

推薦する

ログインボックスのドラッグ効果を実現するためのJavascript

この記事では、ログインボックスのドラッグ効果を実現するためのJavascriptの具体的なコードを参...

vue.js ルーターのネストされたルートの実例

目次序文Vue CLI での設定基本コードVueルーターの登場ネストされたルートの設定要約する序文V...

MySQLはbinlogを通じてデータを復元する

目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...

MyBatisインターセプターのページング機能を実装する方法

MyBatisインターセプターのページング機能を実装する方法序文:まず、実装原則についてお話しします...

iPhone デバイスの WAP ページでフォントサイズが大きい問題の解決策

JavaScriptコントロールを使用したくない場合は、次の方法を試してください。 Safariブラ...

Linux の daily_routine サンプルコードの詳細な説明

まずサンプルコードを見てみましょう: #/bin/bash cal 日付 -u echo "...

aタグに下線を付け、クリック前後で色を変える方法

コードをコピーコードは次のとおりです。リンクフォントサイズ: 12px;色: #000000;テキス...

Nginx の場所と proxy_pass パスの設定の問題の概要

目次1. Nginxロケーションの基本設定1.1 Nginx 設定ファイル1.2 Pythonスクリ...

Dockerのインストール、イメージの作成、NodeJSプログラムの読み込みと実行の詳細なプロセス

システム環境: Windows 7 1. DockerをインストールするDocker公式サイトからd...

MySQLのデフォルトのソートルールに基づく落とし穴

MySQL のデフォルトの varchar 型は大文字と小文字を区別しません (insensitiv...

psdカット画像をdiv+css形式に変換する

PSD から div css へのウェブページ切り取り例ステップ 1: まず、すべてのタグの内側と外...

Docker ベースの ELK ログ システムを構築する方法

背景要件:ビジネスがどんどん大きくなると、サーバーの数も増え、さまざまなアクセスログ、アプリケーショ...

HTML文書におけるol要素の数値制限に関する議論

一般的に言えば、HTML ドキュメント内で極端に大きな <ol> リストに遭遇する可能性...

WeChat パブリック アカウントの録音ファイルを再生して保存します (amr ファイルを mp3 に変換)

目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...

CSSリストのスライドにより、下部に隠れるのを防ぎ、長い画面モデルの処理に適応します。

1. モバイル端末がリストスライドを処理するとき、WeChat には下部にページに戻るボタンが組み...