DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

CentOS 8にDockerをインストールする

1. yumを更新する

[root@VM-24-9-centos ~]# yum -y 更新

2. containerd.ioをインストールする

# centos8 はデフォルトで docker ではなく podman を使用するため、containerd.io が必要です
[root@VM-24-9-centos ~]# yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm -y

# その他の依存関係をインストールします [root@VM-24-9-centos ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@VM-24-9-centos ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. Dockerをインストールする

[root@VM-24-9-centos ~]# yum install -y docker-ce

4. Dockerを起動する

# Dockerを起動する
[root@VM-24-9-centos ~]# systemctl dockerを起動します
# 起動時に自動的に起動するように設定する [root@VM-24-9-centos ~]# systemctl enable docker

5. コンテナを自動的に起動するように設定する

[root@VM-16-7-centos ~]# docker update --restart=always コンテナ名 --restart 特定のパラメータ値の詳細:
	no: コンテナが終了したときにコンテナを再起動しない on-failure: コンテナがゼロ以外のステータスで終了した場合にのみコンテナを再起動する always: 終了ステータスに関係なくコンテナを再起動する

Mysql8.0 の展開

1. イメージをプルする

[root@VM-24-9-centos ~]# docker pull mysql
# 特定のバージョンのイメージをプルする必要がある場合は、バージョン番号を追加します: [root@VM-24-9-centos ~]# docker pull mysql:7.6

2. マウント用のローカルファイルを作成する

[root@VM-24-9-centos ~]# mkdir -p /data/mysql/data
[root@VM-24-9-centos ~]# mkdir -p /data/mysql/conf
[root@VM-24-9-centos ~]# mkdir -p /data/mysql/conf/conf.d

3. コンテナを起動し、コンテナ内の設定ファイル/etc/mysql/my.cnfをデフォルトの設定ファイルとしてローカルコンピュータにコピーします。

# コンテナを起動して設定ファイルをコピーします [root@VM-24-9-centos ~]# docker run -d -p 3306:3306 --name mysqlone mysql:latest
07c314a5e57c3a3ca8ab8ffe5937b4fdb6c87a831b7e15666ee7266feb5af42a
[root@VM-24-9-centos ~]# docker cp mysqlone:/etc/mysql/my.cnf /data/mysql/conf/

# コンテナを停止して削除します [root@VM-24-9-centos ~]# docker stop mysqlone
mysqlone
[root@VM-24-9-centos ~]# docker rm mysqlone
mysqlone

# 設定ファイルが正常にコピーされたかどうかを確認します [root@VM-24-9-centos ~]# cd /data/mysql/conf/
[root@VM-24-9-centos conf]# ls
マイ.cnf

4. ローカル構成ファイルを使用して、コンテナ内の構成ファイルをマウントし、データファイルをマウントします。

docker run -d -p 3306:3306 --name mysqlmaster -e MYSQL_ROOT_PASSWORD='jing1996' -v /data/mysql/conf:/etc/mysql -v /data/mysql/data:/var/lib/mysql mysql

Mysql8.0 デプロイメント マスタースレーブ レプリケーション

1. 設定ファイルを書く

[mysqld]
pid ファイル = /var/run/mysqld/mysqld.pid
ソケット = /var/run/mysqld/mysqld.sock
データディレクトリ = /var/lib/mysql
セキュアファイルプライベート = NULL

# カスタム設定はここに記述します
!includedir /etc/mysql/conf.d/
サーバーID=1
ログ bin = mysql bin
binlog-do-db=モリン
binlog-ignore-db=mysql
  • server-id: サーバー ID。同じにすることはできません。
  • log-bin: バイナリファイルの保存パス。必須ではありません。mysql8 以降では、デフォルトで /var/lib/mysql に保存されます。
  • binlog-do-db: 同期する必要があるデータベース。複数のデータベースがある場合は、スペースで区切ります: db1 db2 db3
  • binlog-ignore-db: 同期する必要のないデータベースが複数ある場合は、スペースで区切ります: db1 db2 db3

2. ノード構成

2.1 マスターノードの構成

# 同期用のデータベース アカウントを追加します CREATE USER 'rootslave1'@'110.40.158.72' IDENTIFIED WITH mysql_native_password BY '123456';
# *.* のレプリケーションスレーブを 'rootslave1'@'110.40.158.72' に許可します。
# 構成を更新 FLUSH PRIVILEGES;
# すべてをクエリする select user,host from mysql.user;
#マスターノードのステータスを照会します。show master status;

2.2 スレーブノードの構成

# マスターとスレーブの同期を構成するには、マスターを master_host='xxxx'、master_user='rootslave1'、master_password='123456'、master_log_file='mysql-bin.000003'、master_log_pos=2384 に変更します。
# 同期を有効にするスレーブを起動します。
# スレーブノードのステータスを表示します。show slave status;

注記:

  • マスター・スレーブ同期を構成するためのmaster_log_fileおよびmaster_log_posパラメータは、マスターノード構成のquery master node statusコマンドに基づいています。ここでのパラメータは、使用するために直接コピーされます。
  • 同期を開始したら、スレーブ ノードのステータスを確認します。同期を成功させるには、Salve_IO_Running と Salve_SQL_Running が Yes であることを確認する必要があります。いいえの場合は、通常、上記の 2 つのフィールドの値が正しくないことを意味します。

同期するデータベースがマスターデータベースにすでに存在する場合、自動的に同期されません。データを保持し、データベースを削除して再構築することをお勧めします。そうすると、スレーブデータベースに自動的に同期されます。

.Net6 プロジェクトがリリースされました

1. VSでプロジェクトを公開し、Dockerfileファイルを書き込む

Dockerfile の内容は次のとおりです。

mcr.microsoft.com/dotnet/aspnet:6.0 AS ベースから
ワークディレクトリ /app
エクスポーズ8989

mcr.microsoft.com/dotnet/sdk:6.0 ASビルドから
ワークディレクトリ /src
コピー 。 。

エントリポイント ["dotnet", "x.API.dll"]

2. イメージを構築する

リリースファイル(Dockerfileファイルを含む)をCentosサーバーにコピーし、現在のディレクトリでイメージをビルドします。

[root@VM-0-17-centos conf]# docker build -t イメージ名: バージョン番号。

例:注意最后有個小點.この點指的是Dockerfile文件所在的目錄。現在のディレクトリにある場合は、そのディレクトリが現在のディレクトリです。他のディレクトリの場合は、完全なディレクトリ パスを入力する必要があります。

3. コンテナを構築し、設定ファイルをマウントする

[root@VM-0-17-centos conf]# docker run -d -p 9999:9999 -v /usr/local/release/project/appsettings.json:/src/appsettings.json --name projectapi project:1.0

SQL Server の展開

前提条件:

  • サーバーには 2G 以上のメモリが必要です。十分でない場合、正常に起動しない可能性があります

1. SQL Serverイメージを取得する

[root@VM-24-9-centos ~]# docker pull mcr.microsoft.com/mssql/server:2019-latest

2. データマウント用のデータファイルを作成する

[root@VM-24-9-centos ~]# mkdir -p /data/sqlserver/data

# ディレクトリの権限を変更します。権限を変更しないと、エラーが報告されます [root@VM-24-9-centos ~]# chown -R 10001:0 /data/sqlserver/data/

3. コンテナを実行する

[root@VM-24-9-centos sqlserverdata]# docker run -d -p 1433:1433 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=sa123456.?' -v /data/sqlserver/data:/var/opt/mssql --name sqlserver mcr.microsoft.com/mssql/server:2019-latest

注記:

  • ACCEPT_EULA=Yはライセンス契約に同意することを意味します。必須です
  • MSSQL_SA_PASSWORD はパスワードです。大文字、小文字、数字、特殊記号を含む 8 文字以上の強力なパスワードにする必要があります。そうしないと、Docker は SQL Server コンテナーを起動してから数秒後に停止します。
  • navcat を使用して接続する場合、ポート番号と IP アドレスはコロンではなくカンマで区切られます。
  • 作成されたデータマウントディレクトリの権限を変更する必要があります

ElasticSearch クラスターの展開

ElasticSearch をデプロイする

1. イメージをプルし、設定ファイルをバッチで生成する

# イメージをプルします [root@VM-24-9-centos ~]# docker pull elasticsearch:7.2.0

# ポートの設定ファイルとディレクトリを生成します $(seq 1 6); \
する \
mkdir -p /data/es/node-${port}/conf
mkdir -p /data/es/node-${port}/data
mkdir -p /data/es/node-${port}/plugins
chmod 777 /data/es/node-${port}/data
/data/es/node-${port}/conf/es.yml をタッチします。
cat << EOF >>/data/es/node-${port}/conf/es.yml
クラスター名: lbj
ノード名: ノード${ポート}
ノードマスター: true
ノードデータ: true
bootstrap.memory_lock: 偽
ネットワークホスト: 0.0.0.0
http.port: 920${port}
トランスポート.tcp.ポート: 930${ポート}
検出シードホスト: ["xxxx:9301","xxxx:9302","xxxx:9303","xxxx:9304"]
クラスターの初期マスターノード: ["node1","node2","node3","node4"]
クラスター.ルーティング.割り当て.クラスター同時再バランス: 32
クラスタールーティング割り当てノード同時回復: 32
クラスタールーティング割り当てノード初期プライマリ回復: 32
http.cors.enabled: 有効
http.cors.allow-origin: "*"
discovery.zen.最小マスターノード数: 2
終了
終わり;

2. コンテナを一括作成し、クラスター情報を表示する

# ポートのコンテナをバッチ作成します $(seq 1 4); \
する \
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-d -p 920${ポート}:920${ポート} -p 930${ポート}:930${ポート} \
-e ES_MIN_MEM=128m \
-e ES_MAX_MEM=2048m \
-v /data/es/node-${port}/conf/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/es/node-${port}/data/:/usr/share/elasticsearch/data/ \
-v /data/es/node-${port}/plugins/:/usr/share/elasticsearch/plugins \
--name ES-${ポート} \
エラスティックサーチ:7.2.0
終わり

# 単一ノードの情報を表示 [root@VM-24-9-centos ~]# curl http://xxxx:9201/
{
  「名前」:「ノード1」、
  "クラスター名" : "lbj",
  "クラスタUUID" : "Vjb7cu6fQ6y2-ZWk0YGIiQ",
  「バージョン」: {
    "番号" : "7.2.0",
    "build_flavor" : "デフォルト",
    「ビルドタイプ」:「docker」、
    "build_hash" : "508c38a",
    「ビルド日付」:「2019-06-20T15:54:18.811730Z」、
    "build_snapshot" : 偽、
    "lucene_version" : "8.0.0",
    "最小ワイヤ互換性バージョン" : "6.8.0",
    "最小インデックス互換性バージョン" : "6.0.0-beta1"
  },
  「タグライン」:「検索用です」
}

# クラスター情報を表示 [root@VM-24-9-centos ~]# curl http://xxxx:9201/_cat/nodes?pretty
172.17.0.2 37 97 0 0.00 0.00 0.08 mdi * ノード1
172.17.0.4 35 97 0 0.00 0.00 0.08 mdi - ノード3
172.17.0.3 39 97 1 0.00 0.00 0.08 mdi - ノード2
172.17.0.6 34 97 1 0.00 0.00 0.08 mdi - ノード4

ElasticSearch-Headをデプロイする

ElasticSearch-HeadはElasticSearch関連情報を表示できる管理インターフェースです。

1. ElasticSearch-Headイメージを取得する

[root@VM-24-9-centos ~]# docker pull mobz/elasticsearch-head:5

2. ElasticSearch-Headコンテナを実行する

# コンテナを作成 [root@VM-24-9-centos ~]# docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

# 管理ツールを使用してクラスタ情報を表示するには、PCからIP:9100にアクセスします

これで、Docker を使用して Mysql、.Net6、Sqlserver およびその他のコンテナーをデプロイする方法に関するこの記事は終了です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。

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

<<:  TSで最も一般的な宣言マージ(インターフェースマージ)

>>:  CSSは位置+マージンを使用して、固定ボックスの水平および垂直の中央揃えの方法を実現します。

推薦する

Linux システム (Centos6.5 以上) のインストール JDK チュートリアル分析

記事の構成1. 準備2. Java JDK8.0をインストールする3. 環境変数を設定する3. イン...

Linux周辺ファイルシステムのカスタマイズ方法

序文一般的に、Linux システムについて話すときは、Linux カーネルと GNU プロジェクトに...

Sparkの紹介とHadoopとの比較

目次1. SparkとHadoopの比較1.1 Haoopの欠点1.2 Hadoop MR に対する...

さまざまなブラウザに対応するためにCSSで指定フォント@font-faceを導入する際の問題

Web ページを作成するときに、特定のフォントを使用したい場合は、 @font-faceを介して参照...

MySQL の起動オプションとシステム変数の例の詳細な説明

目次ブートオプションコマンドラインパラメータの長い形式と短い形式設定ファイル構成グループシステム変数...

MySQL からエクスポートされた scv ファイル内の文字化けやジャンプ行の問題をすばやく解決します

仕事上の理由により、完全なオンライン化(​​つまり、すべてのデータがオンラインで完了し、インポートや...

ビジネス HTML メール作成に関する提案

許可ベースの電子メール マーケティングにより、マーケティングとプロモーションのコストを大幅に削減でき...

VirtualBox での CentOS 8.1 仮想マシンのインストールを最小限に抑える詳細なチュートリアル

1. 関連ツールと画像をダウンロードするダウンロードリンクバーチャルボックス: https://do...

フォームタグの Enctype 属性とその応用例の紹介

Enctype : ブラウザがデータをサーバーに送り返すときに使用するエンコーディングのタイプを指定...

EXPLAIN コマンドの詳細な説明と MySQL での使用方法

1. シナリオの説明: 同僚から MySQL で explain を使用する方法を教わったので、返さ...

Apache Web サーバーを使用して 2 つ以上のサイトを構成する方法

人気があり強力な Apache Web サーバーで 2 つ以上のサイトをホストする方法。前回の記事で...

強くお勧めします! Vue 3.2 でシンタックスシュガーを設定する

目次前の1. セットアップ構文シュガーとは何か2. セットアップコンポーネントを使用して自動的に登録...

Mysql通信プロトコルの詳細な説明

1.Mysql接続方法MySQL 通信プロトコルを理解するには、まず MySQL サーバーへの接続に...

ブラウザのキャッシュを防ぐために、js または css の後に ?v= バージョン番号を追加します。

コードをコピーコードは次のとおりです。 <span style="font-size...