docker とは何ですか、フロントエンドが docker を学習する必要があるのはなぜですか、最も単純な docker コンテナーを作成する方法は何ですか?

ここに画像の説明を挿入

前書き: この記事を書く目的は、最近フロントエンドの自動展開に取り組み、それを記録するためにブログを書く準備をすることです。Docker コンテナ技術が使用されているため、自動デプロイメントに関するブログを書く前に、まず Docker のダウンロードとインストール、ミラーとコンテナの作成を記録します。

docker とは何か、フロントエンドが docker を学ぶ必要がある理由

プロジェクトの開発が完了し、この時点でテストのためにプロジェクトをテスターに​​引き渡す必要があるとします。テストでコードを取得した後、プロジェクトを実行すると、プロジェクトが実行できないことがわかります。次に、プロジェクトに問題があるため実行できないことを伝え、解決してもらいます。しかし、それは明らかに自分のコンピュータでは可能であるため、あなたはショックを受けたふりをして、自分のコンピュータでは問題がないと言った。その後、環境のテストと再インストールに長い時間がかかり、残業もして、ようやくプロジェクトを実行することができました。
テスト後、プロジェクトは運用保守に引き渡され、オンラインになりました。オンラインにした後、同じ問題が発生しました。その後、俳優の自己啓発を利用して、コンピュータでは正常であると主張しました。 。

あなたはコードを書きました、そしてあなたはアクターであることを求められます。実際、時々とても疲れます。

したがって、開発時およびオンライン化時に環境の一貫性を維持することは実際には非常に必要であり、これによりかなりの数の問題の発生を防ぐことができます。
では、これは docker とどのような関係があるのでしょうか?

Baidu で docker の定義を見てみましょう。Docker は、開発者がアプリケーションと依存関係をポータブル イメージにパッケージ化し、それを一般的な Linux または Windows オペレーティング システムに公開できるオープン ソース アプリケーション コンテナ エンジンです。仮想化も可能です。システムマシンに実装されます。コンテナーは完全にサンドボックス メカニズムを使用しており、コンテナー間にインターフェイスはありません。

定義の観点から見ると、少し抽象的であるように思えます。実際、簡単に言えば、docker はコンテナです。開発者は、独自のプロジェクト コードとプロジェクト環境をミラー イメージにパッケージ化して公開できます。このミラー イメージは移植可能です。つまり、ローカル プロジェクトとオペレーティング環境をパッケージ化します。ミラーを解放した後。このイメージは、別のコンピュータまたはオペレーティング システム上でプルできます。イメージをプルした後、このイメージを使用して実行中のコンテナを作成します。この実行中のコンテナは、小型サーバーとみなすことができます。また、サンドボックス メカニズムは、Docker コンテナーに完全に独立した動作環境を提供でき、相互に影響を与えないため、複数のコンテナーを作成し、各コンテナーが独自のプロジェクトをデプロイできます。

では、docker を開発に適用するシナリオはどのようなものでしょうか? テストする場合は、プロジェクトとローカル開発環境の間に Docker イメージを作成できます。テストでは、イメージがコンピューターにプルされ、実行する Docker コンテナーが作成されます。これにより、動作環境が開発環境と一致し、上記の問題が回避されます。オンライン化も同様です。

もちろん、これを読んだ後、「仮想マシンはあるのに、VMware は蕪湖から直接誕生したわけではない」と言う学生もいるかもしれません。まずは仮想マシン環境を構築して、テストや運用保守用に複製を作成するのが良いのではないでしょうか?

もちろんこれももちろん可能です!コンテナー テクノロジが存在しない前は、仮想マシンを使用することがもちろん良い方法です。しかし、私たちのプロジェクトと比較すると、オペレーティング システムはかなり扱いにくいものです。オペレーティング システムを実行するには多くのリソースが必要です。新しくインストールされたシステムには何もなく、ディスク領域の大部分が占有されることがわかっています。アップ。コンテナ技術の登場後、問題は完全に解決されました。もちろん、これはそのうちの 1 つであり、オペレーティング システムの起動に時間がかかることも理由の 1 つであり、結局のところ、多くのものを読み込むのに数分かかります。それに応じてコンテナーの起動も大幅に速くなります。

要約すると、これが、フロントエンドが Docker テクノロジーを学ぶ必要があると言っている理由です。

イメージとコンテナの作成方法

ここまで述べたところで、Docker コンテナーを作成する方法について説明します。次に、最も単純な Docker コンテナの作成方法を簡単に説明します。

Docker コンテナを作成するには、まずコンピュータに Docker をインストールする必要があります。ターミナルを開き、ターミナル (Mac) で次のコマンドを入力します。

brew install --cask --appdir=/Applications docker

インストールには時間がかかる場合があります。インストールが完了すると、次のインターフェイスが表示されます。
ここに画像の説明を挿入

これで、アプリケーション内に docker が表示されます。
ここに画像の説明を挿入

「適用」をクリックします。
ここに画像の説明を挿入

「OK」をクリックしてコンピュータのパスワードを入力します

ここまででdockerはインストールされました。次のステップはコンテナーを作成することです。コンテナーを作成する前に、まず Docker の 3 つの最も基本的な概念を理解する必要があります。

ミラー(イメージ)
コンテナ(コンテナ)
ウェアハウス(リポジトリ)

コンテナーがサーバーの場合、イメージはサーバーを作成するためのテンプレートです。1 つのイメージで複数のコンテナーを作成でき、ウェアハウスはコードを保管するための倉庫である Github と同様に、イメージを保管する場所です。

したがって、コンテナを作成するには、まずイメージを取得する必要がありますが、イメージはどのように作成されるのでしょうか? イメージを取得するには、Dockerfile を使用して生成する方法と、リポジトリからプルする方法の 2 つの方法があります。

ここでは主に Dockerfile を使用したイメージの作成について説明します。Dockerfile は、イメージの作成方法を定義する構成ファイルです。次に、Dockerfile を使用してミラーを作成してみます。

まずフォルダーを作成し、index.html ファイルと Dockerfile ファイルを作成します。この時点で、ファイル ディレクトリは次のようになります。

my-docker
  |____index.html
  |____Dockerfile

Index.html に次のように入力します

<h1>Hello docker</h1>

Dockerfile に次のように入力します

# Dockerfile
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80

構成分析:

nginx から: 公式 nginx イメージをプルします

Index.html /usr/share/nginx/html/index.html をコピーします: 現在のディレクトリの Index.html を、コンテナ /usr/share/ 内の /usr/share/nginx/html/index.html ファイルに置き換えます。 nginx/html nginx がコンテナ内にデフォルトで Web ページ ファイルを保存するディレクトリです

EXPOSE 80: コンテナはポート 80 を公開します。この場所は単なるステートメントです。実際に公開されるポートは、コンテナの実行時に定義されたポートによって決定される必要があります。

ミラーを作成します

docker build . -t mydocker:latest

コマンド分析:
build: docker イメージを作成します
。 : 現在のディレクトリの dockerfile を使用します。
-t: タグを使用してバージョンをマークします
。 mydocker
: mydocker という名前のミラーを作成します。 :latest: 最新バージョンとしてマークします。

ここに画像の説明を挿入

ローカルに存在するミラーを表示します

docker images

ここに画像の説明を挿入

ミラーからコンテナを作成します

docker run -d -p 80:80 --name mydocker-container mydocker:latest

コマンド解析:
run: コンテナを作成して実行します
-d: バックグラウンドでコンテナを実行します
-p: ポート
80:80 を公開: ホストのポート 80 をコンテナのポート 80 にマップします (コンテナのポート 80 はデフォルトで公開されています) )
–name: give 作成されたコンテナーの名前は mydocker-container
mydocker:latest: 最新の mydocker イメージを使用してこのコンテナーを作成します

このマシンのアクセスポート80
ここに画像の説明を挿入

ここまでで、最も単純な Docker コンテナが作成できましたが、マシンのポート 80 にアクセスすると、ポート マッピングにより、コンテナのポート 80 にアクセスし、ページが表示されます。

ローカルノード環境をミラーにパッケージ化する方法については、後ほどフロントエンド自動デプロイメントの記事で実際のプロジェクトと組み合わせて説明します。

おすすめ

転載: blog.csdn.net/yangxbai/article/details/126557983