Docker コンテナ入門から夢中になるまで(推奨)

Docker コンテナ入門から夢中になるまで(推奨)

1. Docker とは何ですか?

仮想マシンについては誰もが知っています。Windows に Linux 仮想マシンをインストールすることは、ほとんどのプログラマーにとって一般的なソリューションです。同社の本番環境のほとんども仮想マシンです。仮想マシンは物理的なハードウェアリソースを仮想化し、オンデマンドで割り当てて使用します。仮想マシンは実際のオペレーティングシステムとまったく同じように使用されます。不要になった場合は、仮想マシンファイルを削除するだけでリソースを再利用できるため、集中管理に非常に便利です。

仮想マシンは非常に大きく、多くのハードウェア リソースを消費するため、Linux では別の仮想化テクノロジである Linux Containers (略称 LXC) が開発されました。これは、仮想マシンのように完全なオペレーティング システムをシミュレートするのではなく、仮想マシンと同じ効果を提供します。仮想マシンがオペレーティング システム レベルで分離されているのに対し、コンテナーはプロセス レベルで分離されています。このレベルの分離の利点は、間違いなく高速性とリソースの節約であると考えられます。

Docker は Linux コンテナのパッケージであり、シンプルで実用的なユーザー インターフェイスを提供します。現在最も人気のある Linux コンテナ ソリューションです。

百科事典からの定義は次のとおりです。

Docker は、Go 言語をベースとしたオープンソースのアプリケーション コンテナ エンジンで、Apache 2.0 プロトコルに準拠しています。Docker を使用すると、開発者はアプリケーションと依存パッケージをポータブル コンテナにパッケージ化し、一般的な Linux マシンに公開できます。また、仮想化も実現できます。コンテナーは完全なサンドボックス メカニズムを使用し、相互にインターフェイスを持ちません。

2. Docker はどのような問題を解決しますか?

1. 仮想マシンのリソース消費の問題を解決します。

仮想マシンはサーバー オペレーティング システム上で実行され、クライアント オペレーティング システムは仮想マシン上で実行され、ユーザー アプリケーションはクライアント オペレーティング システム上で実行されます。サーバーのリソース オーバーヘッドの 80% は、ハードウェア仮想化とクライアント オペレーティング システム自体に費やされます。

図1. 仮想マシンアーキテクチャとコンテナアーキテクチャの違い

図1に示すように、Dockerコンテナ技術を使用すると、コンテナ上で仮想サーバーが稼働し、仮想サーバー上でユーザーのアプリケーションが稼働します。仮想サーバーとサーバーのOSは同じカーネルを使用し、仮想サーバーのファイルシステムは物理サーバーのファイルシステムを利用しますが、分離されています。各仮想サーバーが独自の独立したファイルシステムを持っているように見えます。物理サーバー上に仮想ブリッジデバイスが確立され、各仮想サーバーは仮想ブリッジデバイスを介してネットワークに接続されます。仮想サーバーは物理サーバーのCPU、メモリ、ハードディスクを直接使用し、ハードウェアを仮想化しません。そのため、ハードウェア仮想化やクライアントOSが占有するリソース消費がありません。各仮想サーバーのパフォーマンスは物理サーバーのパフォーマンスに近くなります。

Linux 仮想マシンを実行する一般的な家庭用コンピューターは非常に遅いかもしれませんが、Docker を使用すると、数十または数百の仮想 Linux サーバーを仮想化できます。強力なサーバーに切り替えると、Docker を使用してプライベート クラウド サービスを提供できます。

2. 迅速な展開。

ソフトウェア開発の難しさは環境設定にあります。オペレーティングシステムが正しくセットアップされ、さまざまなコンポーネントやライブラリが正しくインストールされていないと、自分のコンピュータで動作するソフトウェアが別のマシンでは動作しない可能性があります。たとえば、Java で開発された Web システムを展開するには、コンピューターに Java と正しい環境変数がインストールされている必要があり、さらに Tomcat と nginx もインストールされている必要がある場合があります。機械を変更する場合は、最初からやり直さなければなりません。

docker を使用すると、アプリケーションとその依存関係を 1 つのファイル (docker イメージ ファイル) にパッケージ化できます。このファイルを実行すると、仮想サーバーが起動します。仮想サーバーでアプリケーションまたはサービスを起動すると、実際の物理マシンで実行するのと同じです。docker を使用すると、一度デプロイすればどこでも実行できます。自動リリースにも使用できます。

3. 使い捨ての環境を提供する。

たとえば、他の人のソフトウェアをローカルでテストしたり、継続的インテグレーション中にユニットテストとビルド環境を提供したり、仮想サーバーを起動またはシャットダウンしたりすることは、プロセスを起動またはシャットダウンするのと同じくらい簡単かつ高速です。

4. 柔軟なクラウド サービスを提供する。

Docker コンテナはいつでもオン/オフを切り替えることができるため、動的な拡張や縮小に非常に適しています。

5. マイクロサービス アーキテクチャを構築します

複数のコンテナを通じて 1 台のマシンで多数の仮想サーバーを実行できるため、マイクロサービス アーキテクチャまたは分散アーキテクチャを 1 台のマシンでシミュレートできます。

3. Dockerのインストール、展開、使用

この記事では、Ubuntu 18.04 システムのインストールと使用方法について説明します。その他のオペレーティング システムについては、https://docs.docker.com/ の公式ドキュメントを参照してください。

1. Dockerエンジンをインストールする

Dockerインストールパッケージの最新バージョンを入手する

aaron@ubuntu: ~$ wget -qO- https://get.docker.com/ | sh

上記のコマンドを実行し、現在のユーザー パスワードを入力すると、最新バージョンの docker インストール パッケージが自動的にダウンロードされ、自動的にインストールされます。

インストールが完了すると、次のプロンプトが表示されます。

非ルートユーザーとしてDockerを使用する場合は、次の点を考慮する必要があります。
次のようにして、ユーザーを「docker」グループに追加します。

 sudo usermod -aG docker アーロン

これを有効にするには、ログアウトして再度ログインする必要があることに注意してください。

警告: ユーザーを「docker」グループに追加すると、実行権限が付与されます。
     ルート権限を取得するために使用できるコンテナ
     Dockerホスト。
     https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface を参照してください。
     詳細についてはこちらをご覧ください。

非ルートユーザーとしてdockerを直接実行したい場合は、以下を実行する必要があります。

sudo usermod -aG docker アーロン 

コマンドを実行して、ユーザー aaron を docker ユーザー グループに追加し、再度ログインします。そうしないと、次のエラーが報告されます。

docker: unix:///var/run/docker.sock の Docker デーモン ソケットに接続しようとしたときに、アクセスが拒否されました: http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create を投稿: unix /var/run/docker.sock をダイヤル: connect: アクセスが拒否されました。
「docker run --help」を参照してください。

次のコマンドを実行して Docker エンジンを起動します。

aaron@ubuntu:~$ sudo サービス docker を開始

インストールが成功すると、システムは起動時に自動的に起動するように設定されます。手動で設定する場合は、次のコマンドを実行します。

sudo systemctl でdockerを有効にする
sudo systemctl dockerを起動します

試運転

aaron@ubuntu:~$ sudo docker run hello-world

2. Dockerの使用

1. Dockerのアーキテクチャを理解する

使用する前に、まず次の図に示すように、Docker のアーキテクチャを理解してください。

Docker アーキテクチャ図

  • Docker イメージは、Docker レジストリに保存されるファイルであり、Docker コンテナを作成するためのテンプレートです。
  • Docker コンテナは、独立して実行されるアプリケーションまたはアプリケーションのグループであり、前述の仮想サーバーとして理解できます。
  • Docker ホストは、Docker デーモンとコンテナを実行する物理マシンまたは仮想マシンです。
  • Docker クライアントは、Docker API を使用して、コマンド ラインまたはその他のツールを介して Docker デーモンと通信します。

ユーザーは、Docker クライアントを直接使用します。

2. Dockerコマンド

dockerコマンドのヘルプ情報を表示する

docker --help #すべてのdockerコマンドのヘルプ情報 docker COMMAND --help #特定のdockerコマンドのヘルプ情報 COMMAND

Docker情報を見る

docker情報

コンテナ プール、使用済みデータ サイズ、合計データ サイズ、基本コンテナ サイズ、現在実行中のコンテナの数などを確認できます。

画像を検索し、インターネット上で他のユーザーが作成したコンテナ イメージを検索します。

docker 検索 ubuntu
docker 検索 Centos

Ubuntu イメージ

ここから、一部のイメージには PHP、Java、Ansible などのアプリケーションが統合されていることがわかります。独自のアプリケーションやサービスを含むイメージ ファイルを作成し、他の人に渡すこともできます。追加の操作や仮想マシンなどのリソースを消費することなく、Docker を使用して直接コンテナーを開くことができます。アプリケーションやサービスを実行できます。とても便利ではありませんか? !

他の人が作成したコンテナ イメージをインターネットからダウンロードします。

docker プル CentOS
docker プル Ubuntu

ダウンロードしたコンテナイメージファイルをインポートする

docker load < image_xxx.tar

ミラーを見る

Docker イメージ
docker イメージ -a

画像を確認する

docker で Ubuntu を検査する

コンテナイメージの基本情報を確認できます。

画像を削除するには、画像IDで削除を指定します

docker rmi ubuntu

すべての画像を削除

docker rmi $(docker イメージ -q)

ミラー履歴を表示

docker 履歴 Ubuntu

コンテナの実行

Docker コンテナは、ファイル システム、システム ライブラリ、シェル環境など、プロセスの実行に必要なリソースを含むサンドボックス内で実行されるプロセスとして理解できます。ただし、このサンドボックスではデフォルトではプログラムは実行されません。コンテナを起動するには、サンドボックス内でプロセスを実行する必要があります。このプロセスはコンテナの唯一のプロセスなので、プロセスが終了するとコンテナも完全に停止します。

Ubuntuコンテナを実行し、対話型環境に入ります

aaron@ubuntu:~$ docker run -i --name="ubuntu1" --hostname="ubuntu1" ubuntu /bin/sh
/etc/hosts を cat する
127.0.0.1 ローカルホスト
::1 ローカルホスト ip6-ローカルホスト ip6-ループバック
fe00::0 ip6-ローカルネット
ff00::0 ip6-mcastプレフィックス
ff02::1 ip6-全ノード
ff02::2 ip6-オールルーター
172.17.0.2 Ubuntu1
だれだ
根
ユーネーム -a
Linux ubuntu1 4.15.0-34-generic #37-Ubuntu SMP 月曜日 8月 27 15:21:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

上記のコマンドでは、ubuntu1 という名前のコンテナを作成し、コンテナのホスト名を ubuntu1 に設定しました。/bin/sh コマンドを入力した後、hosts ファイルの内容を出力し、カーネル バージョン (ローカル オペレーティング システムのバージョンと一致している) を確認しました。新しいオペレーティング システムでコマンドを使用するのと同じように、ここではさまざまな Linux コマンドを使用できます。同様に、新しいターミナルでubuntu2コンテナを作成し、

ドッカーps

実行中のコンテナを表示します。

実行中のコンテナを表示する

コンテナを終了するには、exit と入力します。

docker run -d ubuntu

長い英数字の文字列が表示されます。これがコンテナ ID です。コンテナには継続的に実行されているプロセスが必要です。そうでない場合、コンテナはすぐに自動的に終了します。
コンテナを実行し、MACアドレスを指定します

docker run -d --name='centos3' --hostname='centos3' --mac-address="02:42:AC:11:00:24" docker-centos6.10-hadoop-spark

すべてのコンテナを一覧表示する

ドッカーps -a

最近起動したコンテナを一覧表示する

ドッカーps -l

コンテナを確認する

docker 検査 Centos1

コンテナに関する情報を取得できます。

コンテナのCIDを取得する

docker 検査 -f '{{.Id}}' centos1

コンテナのPIDを取得する

docker 検査 -f '{{.State.Pid}}' centos1

コンテナのIPを取得する

docker 検査 -f '{{.NetworkSettings.IPAddress}}' centos1

コンテナゲートウェイを取得する

docker 検査 -f '{{.NetworkSettings.Gateway}}' centos1

コンテナMACを取得する

docker 検査 -f '{{.NetworkSettings.MacAddress}}' centos1

コンテナのIPアドレスを表示する

docker 検査 -f '{{.NetworkSettings.IPAddress}}' centos1

コンテナの接続

sshコンテナのIPアドレス

パスワードを入力してください: 123456

コンテナが起動したら、別の方法でコンテナに入ることができます。

docker exec -it centos /bin/sh

コンテナの実行プロセスのログを表示する

docker ログ centos1

コンテナ内で変更されたファイルまたはディレクトリを一覧表示します。一覧には、A 追加、D 削除、C 変更の 3 種類のイベントが表示されます。

docker diff centos1

また、初期のコンテナ イメージ プロジェクトでは、ユーザーまたはシステムは追加/変更/削除されたディレクトリ ファイルを表示できます。
コンテナ内で実行中のプロセスを表示する

dockerトップcentos1

コンテナ内のファイル/ディレクトリをローカルサーバーにコピーする

docker cp centos1:/etc/passwd /tmp/
/tmp/passwd を調べる

コンテナ ファイルは、ネットワーク IP アドレスを介してサーバーにコピーすることもできるため、より便利です。

コンテナを停止する

docker stop centos1

すべてのコンテナを停止

docker kill $(docker ps -a -q)

コンテナを起動する

docker スタート Centos1

単一のコンテナを削除する

docker stop centos1
docker rm centos1

コンテナを削除する前に、コンテナを停止する必要があります。

すべてのコンテナを削除

docker kill $(docker ps -a -q)
docker rm $(docker ps -a -q)

3. ボリュームの概念

データを保存(永続化)し、コンテナ間でデータを共有するために、Docker はボリュームの概念を提案しています。ボリュームはコンテナの特定のディレクトリです。このディレクトリの下のファイルは、コンテナのファイル システムではなく、ホスト マシンに保存されます。

データ ボリュームは、1 つ以上のコンテナーで使用できる特別なディレクトリです。コンテナーのデフォルトのファイル システムをバイパスし、多くの便利な機能を提供します。
(1)コンテナ間でデータボリュームを共有し、再利用することができる。
(2)データ量の変更は直ちに有効となる。
(3)データ量の更新はイメージに影響を与えない。
(4)デフォルトでは、コンテナが削除されてもデータボリュームは常に存在します。

注: データ ボリュームの使用方法は、Linux でディレクトリをマウントするのと似ています。コンテナ内のマウント ポイントとして指定されたディレクトリ内のファイルは非表示になり、マウントされたデータ ボリュームのみが表示されます。

データボリュームの作成と使用

mkdir -p /root/ボリューム1
mkdir -p /root/ボリューム2
docker run -d -v /volume1 --name='centos5' docker-centos6.10-hadoop-spark
docker run -d -v /root/volume1:/volume1 --name='centos6' docker-centos6.10-hadoop-spark
docker run -d -v /root/volume1:/volume1 -v /root/volume2:/volume2 --name='centos7' docker-centos6.10-hadoop-spark
docker run -d -v /root/volume1:/volume1:ro --name='centos8' docker-centos6.10-hadoop-spark

docker run コマンドを使用してコンテナを作成し、-v フラグを指定してデータ ボリュームを作成し、コンテナにマウントします。複数のデータ ボリュームをマウントできます。ボリュームの読み取り専用属性を設定できます。サーバー マッピングのディレクトリを指定する必要はありません。システムが自動的にディレクトリを指定します。また、docker inspect を使用してマッピングされたパスを表示できます。

これらのコンテナにそれぞれ入り、/volume1 ディレクトリと /volume2 ディレクトリを表示します。

データ量の共有

あるコンテナに別のコンテナのデータ ボリュームへのアクセスを許可する場合は、-volumes-from パラメータを使用します。

データボリュームコンテナ

コンテナ間で共有する必要がある継続的に更新されるデータがある場合は、データ ボリューム コンテナを作成するのが最適です。

データ ボリューム コンテナーは、実際には、他のコンテナーがマウントするためのデータ ボリュームを提供するために特別に使用される通常のコンテナーです。

(1)dbdataという名前のデータボリュームコンテナを作成する

docker run -d -v /dbdata --name dbdata docker-centos6.10-hadoop-spark

(2)他のコンテナで--volumes-fromを使用して、dbdataコンテナのデータボリュームをマウントします。

docker run -d --volumes-from dbdata --name db1 docker-centos6.10-hadoop-spark
docker run -d --volumes-from dbdata --name db2 docker-centos6.10-hadoop-spark

これにより、コンテナ間でのデータ共有が可能になります。

これらのコンテナにそれぞれ入り、/volume1 ディレクトリと /volume2 ディレクトリを表示します。

4. 独自の画像を作成して公開する

コンテナの変更を保存し、新しいコンテナイメージを送信する

docker コミット centos1 centos111

既存のコンテナを送信して、新しいコンテナ イメージを作成します。docker イメージを使用して、centos111 イメージを確認します。このメソッドは、新しいコンテナ イメージを作成します。

ミラーを見る

Docker イメージ

リポジトリ タグ イメージ ID 作成 サイズ

centos111 最新 d691a75ee371 23 分前 501.5 MB

新しいコンテナイメージに基づいてコンテナを作成する

docker run -d --name='centos111' centos111

コンテナを表示

docker 検査 centos111

イメージのエクスポートとインポート あるマシンから別のマシンにイメージを移行する必要がある場合は、イメージをエクスポートしてインポートする必要があります。
マシンA

docker を保存 docker-centos6.10-hadoop-spark > docker-centos6.10-hadoop-spark2.tar

または

docker save -o docker-centos6.10-hadoop-spark docker-centos6.10-hadoop-spark2.tar

他の方法と同じように、scp コマンドを使用して、docker-centos6.10-hadoop-spark2.tar をマシン B にコピーします。

docker ロード < docker-centos6.10-hadoop-spark2.tar

または

docker ロード -i docker-centos6.10-hadoop-spark2.tar

コンテナイメージの公開

docker push centos6.8-lamp1

コンテナをネットワークに公開します。

5. Dockerネットワーク

docker が起動すると、ホスト マシン上に docker0 という名前の仮想ネットワーク インターフェイスが作成されます。 RFC 1918 で定義されているプラ​​イベート アドレスから未使用のホスト アドレスとサブネット マスクをランダムに選択し、docker0 に割り当てます。デフォルトの選択は 172.18.0.1/16 です。16 ビットのサブネット マスクは、コンテナーに 65534 個の IP アドレスを提供します。

Docker0 は通常のネットワーク インターフェイスではなく、バインドされた他のネットワーク カード間でパケットを自動的に転送し、コンテナーがホストや他のコンテナーと通信できるようにする仮想イーサネット ブリッジです。

Docker はコンテナを作成するたびに、パイプの両端に似たピア インターフェイスのペアを作成し、一方の側でもう一方の側から送信されたデータ パケットを受信できるようにします。 Docker は、ピア インターフェイスの 1 つを eth0 としてコンテナーに接続し、ホストの名前空間に応じて、もう 1 つを vethAQI2QT などの一意の名前で保持します。すべての veth* インターフェイスを docker0 ブリッジ NIC にバインドすることにより、docker はホストとすべての docker コンテナの間に共有仮想サブネットを作成します。

Docker NAT ネットワーク

デフォルトでは、docker コンテナは NAT 経由でネットワークにアクセスします。docker が起動すると、ホスト上に docker0 という仮想ネットワーク インターフェイスが作成されます。Docker0 は、バインドされた他のネットワーク カード間でデータ パケットを自動的に転送する仮想イーサネット ブリッジです。これにより、コンテナとホストが相互に、またコンテナ間で通信できるようになります。

docker0 のゲートウェイ アドレスは 172.18.0.1、マスクは 16 ビット、IP アドレスは 65534 個提供されます。

NAT モードでは、仮想マシン コンテナーは外部ネットワーク (ホスト マシンの外部) にアクセスできますが、ホスト マシン以外のマシンはコンテナー イントラネットにアクセスできません。

Docker ブリッジ ネットワーク

Docker コンテナはブリッジを介してネットワークにアクセスできます。

ブリッジ モードでは、仮想マシン コンテナーは外部ネットワーク (ホスト マシンの外部) にアクセスでき、ホスト マシンの外部のマシンもコンテナー イントラネットにアクセスできます。

6. Docker パイプワーク

Docker 自体のネットワーク機能は比較的単純であり、多くの複雑なアプリケーション シナリオに対応できません。そのため、パイプワーク、ウィーブ、フランネルなど、Docker のネットワーク機能を改善するために使用されるオープンソース プロジェクトが数多くあります。

Pipework は、Docker エンジニアの Jérôme Petazzoni が開発した Docker ネットワーク構成ツールです。200 行以上のシェルで実装されており、使いやすいです。

配管の設置

git クローン https://github.com/jpetazzo/pipework
cp パイプワーク/パイプワーク /bin/

または

wget [http://172.17.1.240/docker/software/pipework](http://172.17.1.240/docker/software/pipework)
chmod a+x 配管
cp パイプワーク /bin/

コンテナの実行

docker run -d --net='none' --name='centos9' docker-centos6.10-hadoop-spark

コンテナ ネットワークを設定し、ブリッジ docker0 に接続します。ゲートウェイは、IP アドレスの後に @ を追加して指定します。

パイプワーク docker0 centos9 172.18.0.100/[email protected]

7. Docker ネットワーク ポート マッピング

コンテナが docker0 仮想ネットワークを使用する場合、コンテナのネットワークは 172.17.0.0/16 になります。コンテナは NAT を介して外部ネットワークにアクセスできますが、外部ネットワークは内部ネットワークにアクセスできません。コンテナが br0 仮想ネットワークを使用する場合、コンテナとサーバーは同じネットワーク アドレス セグメントに存在でき、コンテナは外部ネットワークにアクセスでき、外部ネットワークもコンテナ ネットワークにアクセスできます。
docker0 仮想ネットワークを使用するコンテナの場合、ポート マッピングを使用して、外部ネットワークがコンテナの特定のポートにアクセスできるようにすることができます。

コンテナの実行

docker run -d -p 38022:22 --name='centos10' docker-centos6.10-hadoop-spark

コンテナの接続

ssh ローカルホスト -p 38022

他のサーバーでは、物理サーバーとポートにアクセスすることでコンテナーにアクセスできます。一度に複数のポートをマップできます。
コンテナの実行

docker run -d -p 38022:22 -p 38080:80 --name='centos11' docker-centos6.10-hadoop-spark

実装の原則は、サーバー上の iptables を介して転送することです。もちろん、iptables を通じてコン​​テナの IP アドレス全体を転送することもできます。

4. 結論

コンテナはプロセスレベルであるため、仮想マシンに比べて多くの利点があります。

(1)高速コンテナ内でアプリケーションを起動すると、仮想マシン内のプロセスではなく、基盤となるシステム内のプロセスが直接起動されます。したがって、コンテナを起動することは、オペレーティング システムを起動するのではなく、ローカル マシン上でプロセスを起動することと同じであり、はるかに高速です。

(2)リソース使用量が少ない:コンテナは必要なリソースのみを占有し、未使用のリソースは占有しません。一方、仮想マシンは完全なオペレーティングシステムであるため、必然的にすべてのリソースを占有します。さらに、仮想マシンは排他的なリソースを持ちますが、複数のコンテナはリソースを共有できます。

(3) サイズが小さい: コンテナには使用するコンポーネントのみを含める必要がありますが、仮想マシンはオペレーティングシステム全体のパッケージであるため、コンテナファイルは仮想マシンファイルよりもはるかに小さくなります。
つまり、コンテナは、はるかに低コストで仮想化環境を提供できる軽量の仮想マシンに少し似ています。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerのインストールと簡単な使用方法のチュートリアル
  • Docker コンテナで IPython を使用するための入門ガイド
  • Docker コマンドラインの完全ガイド (知っておくべき 18 のこと)
  • Dockerのクイックガイド
  • 2時間のDocker入門チュートリアル
  • Dockerコンテナの紹介
  • Dockerの簡単なインストールと応用入門チュートリアル
  • Dockerの基礎

<<:  ネイティブ JS でスネーク ゲームを書く

>>:  MySQL挿入パフォーマンスを最適化する方法の例

推薦する

ウェブページ内のFlash SWFファイルを変更する方法

これは多くの人が遭遇した問題だと思います。実際、Web ページから FLASH をダウンロードして修...

Vue のミックスインの使用方法の詳細な説明

目次序文1. Mixin とは何ですか? 2. Mixin はいつ使用すればよいですか? 3. Mi...

MySQL は、元のデータと同じデータがある場合、更新ステートメントを再度実行しますか?

背景この記事では主に、MySQL が更新ステートメントを実行するときに、元のデータと同一の (つまり...

MySQL パーティションテーブルのベストプラクティスガイド

序文:パーティショニングはテーブル設計パターンです。一般的に、テーブル パーティショニングとは、条件...

ウェブページ内の 2 つのボックス モデル (W3C ボックス モデル、IE ボックス モデル)

Web ページ ボックス モデルには 2 種類あります。 1: 標準 W3C ボックス モデル。2:...

Vueルーティングナビゲーションガードの簡単な理解

目次1. グローバルガード1. グローバル前線警備2. グローバル解像度ガード3. グローバルポスト...

Vueカスタムテーブル列実装プロセス記録

目次序文レンダリングsetTable コンポーネント使用結論序文フォームを使用して PC 側のプロジ...

three.js を使って立体的な矢印線を描く詳細な手順

需要: この需要は緊急に必要です!地下鉄のシーンでは、脱出経路を示す矢印を描かなければなりません。こ...

ウェブサイトのテキストはまだデザインする必要がありますか?

多くの人が、ウェブサイト上のテキストはデザインする必要があるのか​​と疑問に思うかもしれません。多く...

bashコマンドの使い方の詳細な説明

Linux では、基本的に vi エディタのように「.sh」拡張子を持つテキストの処理と実行を記述す...

mysql 8.0.18 mgr のインストールと切り替え機能

1. システムインストールパッケージ yum -y インストール make gcc-c++ cmak...

HTML独習の旅(I)基本要素と属性の練習(自分でコードを書く)

私は W3school のチュートリアルに従いました。チュートリアルはとても良いと思います。各セクシ...

Alibaba Cloud Server への Web プロジェクトのデプロイについて (5 つの手順)

1.まずAlibaba Cloudのウェブサイトにログインしてアカウントを登録し、サーバータイプを...

MySQL リンクを表示し、異常なリンクを削除する方法

序文:データベースの運用や保守の際には、リンクの総数がいくつあるか、アクティブなリンクがいくつあるか...

いくつかの重要なMySQL変数

MySQL 変数は数多くありますが、その中には注目に値するものもあります。ここでは、参考までに、注目...