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

推薦する

Webpack でよく使われる 12 個の Loader を共有する (要約)

目次序文スタイルローダーCSSローダーsassローダーpostcssローダーバベルローダーtsローダ...

CentOS7にsshをインストールして設定する

1. openssh-serverをインストールする yum インストール -y openssl o...

MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ

MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...

コンテンツタイプの説明、つまりHTTPリクエストヘッダーのタイプ

コンテンツ タイプについて学ぶには、まずそれが何であるか、そして何に使用されるかを知る必要があります...

最もよく使われるHTMLエスケープシーケンス

HTML では、<、>、& などは特別な意味を持ち (<、> はリン...

モバイル開発における 1px ラインの理解と解決策

1pxの線が太くなる理由モバイルプロジェクトに取り組むとき、設計図に従って要素ノードのサイズとスタイ...

Linux でリモート MySQL データベースを手動で展開する方法の詳細な説明

1. mysql をインストールします。次のコマンドを実行して、YUM ソースを更新します。 rpm...

HTML いくつかの特別な分割線効果

1. 基本ライン 2. 特殊効果(効果は独立しておらず、互いに組み合わせることができます) 1. 両...

Centos7 システムに k8s クラスターを展開するための詳細な紹介

目次1 バージョンと計画1.1 バージョン情報: 1.2 クラスター計画2. 展開1. ファイアウォ...

JavaScript の組み込み Date オブジェクトの詳細な説明

目次日付オブジェクト日付オブジェクトの作成新しい日付()日付を取得する()取得日()月を取得する()...

Linux でログインタイムアウト後に非アクティブなユーザーを自動的にログアウトする

方法1: .bashrcまたは.bash_profileファイルを変更するこれは、ホーム ディレクト...

Linux でネットワーク パケット損失と遅延をシミュレートする方法

netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...

MySQL Community Server 5.6.39 のインストール方法

この記事では、MySQLのダウンロードとインストールの詳細なチュートリアルを記載しています。具体的な...

Linux でコマンドまたはプロセスの実行時間を調べる方法

Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...