ホームページ  >  記事  >  バックエンド開発  >  php dockerの原理と機能を超詳細に分析

php dockerの原理と機能を超詳細に分析

王林
王林転載
2019-09-04 11:43:293809ブラウズ

php dockerの原理と機能を超詳細に分析

一文要約:

Docker はコンテナの原則です: 分離など: Docker はアプリケーションのパッケージ化、送信、およびデプロイメントの一連の方法を提供しますこれにより、コンテナ内でアプリケーションをより適切に実行できるようになります。 Docker はポータブルなアプリケーション コンテナです。

Docker は、Node.js Web サイト サーバー、API サーバー、データベースなどのさまざまな環境を迅速に作成できます。

1. の利点は何ですか?港湾労働者?

1-1. 分離環境をすばやく構築する: アプリケーションが異なれば、アプリケーション環境も異なる場合があります。たとえば、.net で開発された Web サイトと php で開発された Web サイトは、異なるソフトウェアに依存します。 lily on がサーバーにインストールされている場合、デバッグに時間がかかり、非常に面倒で、いくつかの競合が発生します。たとえば、IIS と Apache のアクセス ポート間に競合が発生します。このとき、.netで開発されたWebサイトとPHPで開発されたWebサイトを分離する必要があります。一般に、サーバー上にさまざまな仮想マシンを作成し、さまざまなアプリケーションをさまざまな仮想マシンに配置できますが、仮想マシンのオーバーヘッドは比較的高くなります。 Docker は仮想マシン分離アプリケーション環境の機能を実現でき、仮想マシンに比べてオーバーヘッドが少なく、サイズが小さいためコストを節約できます。

1-2. 開発環境をカプセル化し、環境バージョンの問題を解決する: ソフトウェア開発時は Ubuntu を使用しますが、運用保守管理は centos が行います。開発環境から運用環境への移行では、Ubuntu を CentOS に変換するときにいくつかの問題が発生します。たとえば、Ubuntu でのみサポートされ、CentOS ではサポートされない特別なバージョンのデータベースが存在します。移行プロセス中に、運用とメンテナンスが必要になります。そのような問題を解決する方法を見つけます。この時点で docker があれば、開発環境を直接カプセル化して運用保守に転送することができ、運用保守は渡した docker を直接デプロイできます。そしてデプロイも早いです。

1-3. メモリ使用率: サーバー負荷の観点から、仮想マシンを単独で開くと仮想マシンが空きメモリを占有しますが、Docker をデプロイするとこのメモリが利用されます。

2. docker とは何ですか?ドッカーは何ができるのでしょうか?

Docker のアイデアはコンテナから来ています。コンテナはどのような問題を解決しますか?大型船でも荷物をきれいに並べることができます。そして、あらゆる種類の商品はコンテナによって規格化されており、コンテナ同士が相互に影響を与えることはありません。そうすれば、果物を運ぶための専用の船も、化学物質を運ぶための専用の船も必要ありません。これらの商品がコンテナにきちんと詰められていれば、大きな船ですべて運ぶことができます。

docker も同様の概念です。現在、クラウド コンピューティングが普及していますが、クラウド コンピューティングは大きな貨物船のようなものです。 Dockerはコンテナです。

2-1. アプリケーションが異なれば、アプリケーション環境も異なる場合があります。たとえば、.net で開発された Web サイトと php で開発された Web サイトは、異なるソフトウェアに依存しています。依存するソフトウェアが 1 つのデバッグにインストールされている場合は、サーバーは時間がかかり、非常に面倒で、競合を引き起こす可能性があります。たとえば、IIS と Apache のアクセス ポート間に競合が発生します。このとき、.netで開発されたWebサイトとPHPで開発されたWebサイトを分離する必要があります。一般に、サーバー上にさまざまな仮想マシンを作成し、さまざまなアプリケーションをさまざまな仮想マシンに配置できますが、仮想マシンのオーバーヘッドは比較的高くなります。 Docker は仮想マシン分離アプリケーション環境の機能を実現でき、仮想マシンに比べてオーバーヘッドが少なく、サイズが小さいためコストを節約できます。

2-2. ソフトウェアを開発する際にはUbuntuを使用しますが、運用保守管理はcentosが行うため、ソフトウェアを開発環境から本番環境に移行する際に運用保守に問題が発生します。たとえば、Ubuntu を CentOS に変換する場合、Ubuntu でのみサポートされ、CentOS ではサポートされない特別なバージョンのデータベースが存在するため、移行プロセス中に、運用および保守はそのような問題を解決する方法を見つける必要があります。この時点で docker があれば、開発環境を直接カプセル化して運用保守に転送することができ、運用保守は渡した docker を直接デプロイできます。そしてデプロイも早いです。

2-3. サーバー負荷の観点から、仮想マシンを単独で開くと仮想マシンが空きメモリを占有しますが、Docker をデプロイするとそのメモリが利用されます。

つまり、docker はコンテナの原理です。

3. 開発者は docker を何に使用できますか?

Docker は今日非常に注目を集めていますが、Docker と一般の開発者との関係がまだ理解されていないため、多くの人がその評判に応えるのが難しいと感じています。多くの開発者は、Docker は実稼働環境のツールであり、開発者とは何の関係もないと感じています。また、一般の開発者として自分の開発で Docker を使用する方法を理解するのに長い時間がかかりました。率直に言って、私はまだ勉強の途中です。

この記事では、Docker の使用例のリストを提供します。これが、Docker をよりよく理解し、考えるきっかけになれば幸いです。この記事では、一般の開発者による Docker の日常的なアプリケーションについてのみ説明しており、完全なソリューションを提供するものではありません。

ユースケースを紹介する前に、「Docker はポータブル アプリケーション コンテナである」という文を覚えておいてください。 Docker の「ポータブル コンテナ」が何を意味するのかを知る必要はありませんが、Docker が日常生活の効率を大幅に向上させる可能性があることは知っておく必要があります。

コンテナ内で独自のアプリケーションを実行する必要がある場合 (もちろん、どのアプリケーションでも構いません)、Docker はアプリケーションを実行するための基本システムとして基本システム イメージを提供します。つまり、Linux システム上のあらゆるアプリケーションを Docker で実行できます。

Docker でデータベースを実行できますか?もちろん。
Node.js Web サイト サーバーを Docker 内で実行できますか?もちろん。
Docker で API サーバーを実行できますか?もちろん。

Docker は、アプリケーションの内容や動作を気にしません。Docker は、コンテナ内でアプリケーションをより適切に実行できるように、アプリケーションのパッケージ化、送信、およびデプロイメントの一連のメソッドを提供します。

4. 新しいソフトウェアを試してみる

開発者にとって、日々生まれるあらゆる新しい技術を試す必要があります。作成者が環境をセットアップして 1 つずつテストを実行する可能性は低いです。時間は貴重です。Docker のおかげで、1 つまたはいくつかのコマンドで環境をセットアップできます。 Docker にはソフトウェアを確実に入手する方法があり、Docker のバックグラウンドが自動的に環境イメージを取得して環境を実行します。
Docker は新しいテクノロジー環境の構築だけに使用されるわけではありません。 MySQL データベースや Redis メッセージ キューをラップトップ上ですばやく実行したい場合は、Docker を使用すると非常に簡単に実行できます。たとえば、Docker が MySQL データベースを実行するために必要なコマンドは 1 つだけです。

docker run -d -p 3306:3306 tutum/mysql。

翻訳者注記: MySQL データベースはコマンドを使用して非常に迅速にインストールできますが、最新のテクノロジや非常に複雑なテクノロジを使用する場合は、Docker を使用する必要があります。平均的なユーザーが Gitlab プラットフォームを構築するには約 1 日かかりますが、Docker に必要なコマンドは 1 つだけです。

5. Linux スクリプトを学ぶ

もちろん、この理由は奇妙に思えるかもしれませんが、Linux オペレーティング システムに詳しくない人にとっては、シェル スクリプト これは人々にとって実に良い機会です。この記事は Linux に関するものではありませんが、Linux の重要性は依然として自明です。 Windows を使用している場合は、クラウド ホスティング プロバイダーからクラウド ホストをレンタルすることを提案します。CoreOS クラウド ホストを使用することをお勧めします。これにより、プロの Linux 操作とメンテナンスができるわけではありませんが、Linux の基本をすぐに学び、コマンド ライン操作に夢中になり、ゆっくりと Linux に慣れ、理解できるようになります。

6. リソースの有効活用

仮想マシンの粒度は「仮想マシン」ですが、Docker の粒度は「制限された」アプリケーションです。比較すると、Docker はメモリ使用量が少なく、軽量です。
私にとって、これは Docker の利点です。私はコンピューター上で複数の Docker アプリケーションを実行することが多いため、Docker を使用する方が仮想マシンを使用するよりも簡単で便利で、粒度が細かく、コンテナーのステータスを継続的に追跡できます。 。

7. マイクロサービス向けのカスタマイズ

テクノロジー ニュースに注目している人なら、「マイクロサービス」という概念を聞いたことがあるはずです。 Docker はマイクロサービスとうまく組み合わせることができます。概念的には、マイクロサービスはアプリケーション機能の完全なセットの一部を提供するコンテナーであり、Docker は開発、テスト、デプロイメント中にマイクロサービス コンテナーとして機能します。実稼働環境でも Docker にマイクロサービスをデプロイできます。

8. クラウド サービス プロバイダー間の移植

ほとんどのクラウド ホスティング プロバイダーはすでに Docker を完全にサポートしています。開発者にとって、これは、クラウド サービス プロバイダーを簡単に切り替えることができることを意味します。もちろん、ローカルの開発環境をクラウド ホストに簡単に移行することもできます。実行環境をローカルに構築してクラウド ホスト上に構築する必要はありません。また、実行環境を一度設定します。標準オペレーティング環境として Docker (Docker here と Docker there) を包括的に導入すると、アプリケーションがオンラインのときにワークロードが大幅に軽減され、バグが発生する可能性があります。

9、API

API はアプリケーション間の接着剤です。資格のある開発者は、他者が提供する REST API を使用するか、自分で REST API を開発したことが必要です。クライアントであれ API プロバイダーであれ、開発前に一連のパブリック API インターフェイスを定義し、コーディングする前に文書化する必要があることに注意してください。サーバーとクライアントが共同開発される場合、サーバーは通常、固定文字列を返すことができる API インターフェイスを最初に実装し、その後の開発で API 関数を徐々に実装します。
ここでは Docker が悪用されていると考える人もいるかもしれませんが、sample.json などのファイルを使用して仮想 API を実装できますが、フロントエンドとバックエンドの開発時に API の問題をより適切に解決できる例を以下に示します。分離。
私が言いたいことをよりよく説明するために、例を挙げましょう。JSON サーバー、JSON データを提供するための REST API。このコンテナを使用したことがある人なら、これほど使いやすい Docker JSON サーバーがあることをご存知でしょう。Docker を使用しない理由はありません。

その他の関連する質問については、PHP 中国語 Web サイトをご覧ください: PHP ビデオ チュートリアル

以上がphp dockerの原理と機能を超詳細に分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。