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

推薦する

CSS で放射状グラデーションを使用してカード効果を実現する

数日前、同僚がポイントモールプロジェクトを受け取りました。このプロジェクトには、カードやクーポンをギ...

Mysql5.7.18 のインストールとマスタースレーブレプリケーションの詳細なグラフィック説明

CentOS6.7にmysql5.7.18をインストールする 1. /usr/localディレクトリ...

MySQL カーソルの概念と使用法の詳細な説明

この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...

JavaScriptで計算機機能を実現するプロセスの詳細な説明

目次1. 電卓機能の紹介2. 計算機ページのデザイン1. ナビゲーションバー2. データ部分3. i...

dockerエラーの原因分析 終了しました (1) 4分前

Dockerエラー1. 原因を確認するdocker ログ ネクサス2. エラーの原因OpenJDK ...

MySQL インポート csv エラーの 4 つの解決策

これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...

CentOS8 で MySQL 8.0 をインストールしてデプロイする方法

MySQL 8 の公式バージョン 8.0.11 がリリースされました。公式発表によると、MySQL ...

Html/Css (初心者が最初に読むべきガイド)

1. Web標準の意味を理解する - なぜWeb標準を採用するのか***** コンテンツとスタイル...

シンプルな画像ドラッグ効果を実現する js

この記事では、簡単な画像ドラッグ効果を実現するためのjsの具体的なコードを参考までに紹介します。具体...

Vue での mixin の応用について議論する

Mixin は、再利用可能な機能を Vue コンポーネント間で分散する非常に柔軟な方法を提供します。...

IE6かどうかを判定する最短JS(IEの書き方)

ブラウザが IE のどのバージョンであるかを検出するためによく使用される JavaScript コー...

Nginx の一般的な設定とテクニックの概要

序文この記事では、Nginx の一般的な、実用的で興味深い構成をいくつか紹介します。この記事を読んだ...

Velocity.js はページスクロール切り替え効果を実装します

今日は、複数ページのスクロール切り替え効果を備えた Web サイトを簡単かつ効率的に開発できる、小さ...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

Ubuntu 20.04 LTS で Java 開発環境を構成する

Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...