Docker は、プロジェクトと、プロジェクトの共有とデプロイに必要なすべての重要な依存関係をコンテナー化するコンテナー化ソリューションを導入しています。これにより、次のような依存関係の問題を解決できます。 ライブラリまたはパッケージがありません 」 アプリケーションを別のシステムにインストールするときに、依存関係やパッケージを個別にインストールする必要はありません。
このブログでは、Docker プラットフォームの基礎とその使用方法について説明します。
Docker の基礎
Docker プラットフォームは、その基礎とアーキテクチャにより、他の多くのアプリケーションよりも一貫性があり安定しています。 Docker プラットフォームのコア コンポーネントは次のとおりです。
Docker ハブ
Docker Hub は、Docker イメージの管理と公開に使用される公式の Docker レジストリです。このレジストリには、ユーザーが使いやすいように何千もの公式イメージが含まれています。これらのイメージは、開発者が開発のために簡単にアクセスできます。
Dockerfile
Dockerfile は、ユーザー アプリケーションまたはプロジェクトをコンテナー化するための指示を含む指示ファイルとも呼ばれます。これらの手順には、基本イメージ、依存関係のインストール、コマンド、作業ディレクトリ、実行可能ファイル、およびソース ファイルが含まれます。さらに、Dockerfile を使用して Docker イメージをビルドし、アプリケーションをコンテナー化します。
Docker Compose
Docker Compose は、複数のコンテナー アプリケーションとサービスを実行、管理、共有するために使用される Docker ツールのもう 1 つのコア部分です。 YAML ファイルでアプリケーション サービスを構成します。
Docker イメージ
Docker イメージは、Docker 開発の構成要素または出発点と見なされます。これらのイメージは、コンテナーを作成するためのフレームワークまたはテンプレートを提供します。イメージはコンテナーを作成するだけでなく、プロジェクトを実行してコンテナー化する方法についてもそれらをガイドします。
Docker コンテナ
Docker コンテナーは、実際のコンテナーと同様であり、実行可能パッケージと呼ばれます。これらのコンテナーは、プロジェクト、依存関係または必要なパッケージ、および構成設定をカプセル化またはパックします。 Docker のコンテナー化機能により、Docker はさまざまなアプリケーションの中で際立っています。これらのコンテナーにより、プロジェクトとソフトウェアの配布が容易になります。
Docker デーモン
Docker Daemon は、ホスト上の Docker イメージとコンテナー、ボリューム、およびコンテナーを管理する Docker のコア部分です。 Docker デーモンは、Docker クライアントからコマンドを取得するか、Rest API をリッスンして、Docker コンテナーを処理または操作します。
Docker ネットワーク
Docker ネットワークは、コンテナーを別のネットワークにアタッチまたは接続できるようにする、Docker の基本のもう 1 つの重要な部分です。デフォルトでは、Docker はブライド ネットワークとホスト ネットワークを提供します。ただし、ユーザーは要件に応じて独自のネットワークを作成できます。
Docker ボリューム
Docker ボリュームは外部ファイル システムであり、ホスト上で管理されます。 Dockerコンテナによって生成されたデータと結果を永続化または保存するために使用されます。これらのボリュームは、コンテナーのライフ サイクルから独立しており、他のコンテナーのバックアップ ファイルとして保存されます。
開発に Docker を使用するには?
Docker のコア コンポーネントとファンダメンタルズは、コンテナー内のアプリケーションまたはプロジェクトのビルドとテストに使用されます。 Docker プラットフォームにより、プロジェクトの開発と展開がよりシンプルかつ簡単になります。 Docker の使用を開始するには、まず、関連するツールを使用して Docker をインストールします。 記事 .次に、アプリケーションの開発とデプロイを開始します。
Docker でプログラムをビルドして実行する方法のデモについては、提供されている例を参照してください。
例 1: Dockerfile を使用してコンテナーにアプリケーションをデプロイする
基本または最初のアプリケーションを Docker にデプロイするには、まず Windows の [スタート] メニューから Docker デスクトップ アプリケーションを起動して、Docker エンジンを実行します。その後、提供された手順を利用して、Docker での開発を開始します。
ステップ 1: プログラムの作成
まず、簡単なプログラム ファイルを作成します。 index.html 」を Visual Studio コード エディターで開き、以下のコードをファイルに貼り付けます。
< html >< 頭 >
< スタイル >
体{
背景色: 黒;
}
h1{
色:アクアマリン;
フォント スタイル: 斜体;
}
< / スタイル >
< / 頭 >
< 体 >
< h1 > こんにちは! Linuxhint チュートリアルへようこそ < / h1 >
< / 体 >
< / html >
ステップ 2: Dockerfile を作成する
次に、「」という名前の別のファイルを作成します Dockerfile 」。 Dockerfile にはファイル拡張子が含まれていません。その後、以下のコード スニペットをファイルにコピーします。
FROM nginx:最新index.html をコピー / ユーザー / 共有 / nginx / html / index.html
エントリーポイント [ 「ニンジンクス」 、 「-g」 、 「デーモンオフ;」 ]
上記のコードによると、次のようになります。
- 「 から 」ステートメントは、コンテナーの基本イメージを割り当てまたは指定するために使用されます。
- 「 コピー 」コマンドは、ソース ファイルをコンテナーの宛先パスにコピーします。
- 「 エントリーポイント 」は、Docker コンテナーのデフォルトまたは実行可能ファイルを定義します。
ステップ 3: Docker イメージをビルドする
次に、新しいイメージを生成して「 index.html 」 上記のコマンドを使用したプログラム。 「 -t 」 オプションは、イメージのタグまたは名前を定義します。
> docker build -t html-img .
ステップ 4: イメージを実行する
次に、新しく生成されたイメージを実行して、「 index.html 」を使ったプログラム ドッカー実行 ' 指図。ここで、「 -d 」オプションはコンテナをバックエンド サービスとして実行し、「 -p 」は、コンテナー ホスト ポートを割り当てます。
> docker run -d -p 80 : 80 html-img
「 ローカルホスト:80 」ポートをブラウザで開き、「 index.html 」ファイルが実行中かどうか:
Dockerfile を使用して単純な HTML プログラムをコンテナー化し、デプロイしたことがわかります。
例 2: Docker Compose を使用してコンテナーにアプリケーションをデプロイする
Docker プラットフォームのもう 1 つの主要コンポーネントは、Docker 作成ツールです。開発に Docker Compose を利用するには、次の手順を実行します。
ステップ 1: 「docker-compose.yml」ファイルを作成する
同様に ' index.html 」ファイルで、「」という名前の構成ファイルを作成します docker-compose.yml 」ファイルを開き、次の命令を含むファイルに以下のコード ブロックを貼り付けます。
- 「 サービス 」を使用してサービスを定義します。たとえば、「 ウェブ ' サービス。
- 「 建てる 」は、構成ファイルが「 Dockerfile 」 上記の例で作成されました。
- 「 コンテナ名 」は、「Web」サービスを実行するコンテナーの名前です。
- 「 ポート 」は、コンテナーが公開するホスト投稿です。
サービス :
ウェブ :
建てる : .
コンテナ名 : htmlコンテナ
ポート :
-8080:80
ステップ 2: Docker コンテナーの実行を開始する
その後、「 docker-compose up ' 指図:
> docker-compose up -d
ここでは、コンテナがローカル ホストに正常にデプロイされていることがわかります。
これはすべて、Docker 環境の基礎に関するものです。
結論
Docker プラットフォームは、その基礎とアーキテクチャにより、他の多くのアプリケーション間でより一貫性があり、安定しています。 Docker プラットフォームのコア コンポーネントは、Docker Hub、Dockerfile、Docker Compose、Docker イメージ、Docker コンテナー、Docker デーモン、Docker ネットワーク、および Docker ボリュームです。この記事では、Docker の基礎と、それらを開発に使用する方法について説明しました。