Web開発者のためのDocker:基本の開始

Dockerは、人気のあるアプリケーション コンテナ化プラットフォームとして世界的に知られています。 しかし、あまり知られていない興味深い分身もいます。 これは、その速度、柔軟性、幅広いユーザーベース、およびコラボレーション機能により、Web開発者の間で人気のある頼りになるプラットフォームです。 

Dockerは、コンテナ化を使用してWeb開発に革新をもたらす最新のソリューションとして成長しています。 コンテナを使用すると、開発者とWeb開発プロジェクトはより効率的になり、時間を節約し、新たな創造性を推進できます。 Web開発者は、異なる環境間での一貫性を確保し、「自分のマシンで動作する」という問題を排除するため、開発にDockerを使用します。 また、Docker は依存関係の管理を簡素化し、リソース効率を向上させ、スケーラブルなマイクロサービス アーキテクチャをサポートし、迅速なデプロイとロールバックを可能にするため、最新の Web 開発プロジェクトに不可欠なツールとなっています。

この投稿では、小規模から大規模までのビジネスでDockerを使用する利点を詳しく説明し、Web開発と開発者の生産性を強化するためのDockerの幅広い機能、強み、および機能を確認します。 

2400x1260 Docker(Web開発者向け)

ドッカーとは何ですか?

Dockerは、すぐに使える安全なコンテナ化ソフトウェアであり、開発者やチームに、エンタープライズアプリケーションやWebアプリケーションの開発、テスト、監視、出荷、デプロイ、実行のための堅牢なハイブリッドツールキットを提供します。 コンテナ化により、開発者はアプリケーションをインフラストラクチャから分離して、ホストに何がインストールされているかを気にせずにアプリケーションを実行でき、開発チームは仮想マシンよりも柔軟性とコラボレーションの利点を得ると同時に、より優れたソースコードをより迅速に提供できます。 

Dockerスイートを使用すると、開発者は、オペレーティングシステムや必要なサービスなど、アプリケーションの実行に必要なものがすべて揃った、軽量でローカルな標準化されたコンテナにアプリケーションコードをパッケージ化して実行できます。 Docker を使用すると、開発者はホスト上で多数のコンテナを同時に実行できると同時に、コンテナを他のユーザーと共有することもできます。 このコラボレーションワークスペース内で作業することで、生産的で直接的なコミュニケーションが促進され、開発プロセスがより簡単に、より正確で、より安全になります。 Docker のコンポーネントの多くは、 Docker ComposeBuildKit、Docker コマンドライン インターフェイス (Docker CLI)、 containerd など、オープンソースです。 

開発者とチーム向けの#1 コンテナ化ソフトウェアとして、Dockerはあらゆる種類の開発に適しています。 ハイライトは次のとおりです。 

  • Docker Hub: 世界最大のコンテナイメージのリポジトリで、開発者やオープンソースの貢献者がDockerにインスパイアされたコンテナイメージを見つけ、使用し、共有するのに役立ちます。
  • Docker Compose: マルチコンテナアプリケーションを定義して実行するためのツール。
  • Docker Engine: アプリケーションを構築およびコンテナ化するためのオープンソースのコンテナ化テクノロジ。
  • Docker Desktop: Docker Engine とその他のオープン ソース コンポーネントが含まれています。独自のコンポーネント。また、直感的な GUI、同期されたファイル共有、クラウド リソースへのアクセス、デバッグ機能、ネイティブ ホスト統合、 ガバナンス、Enhanced Container Isolation (ECI) をサポートするセキュリティ機能、エアギャップ コンテナ、管理設定管理などの機能も備えています。
  • Docker Build Cloud: 開発者がクラウドインフラストラクチャ上でコンテナイメージをビルドできるDockerサービスで、すべてのチームメンバーがどこでも迅速にビルドできます。 

コンテナーとは?

コンテナは 、コード、ランタイム、ライブラリ、環境変数、設定ファイルなど、アプリケーションの実行に必要なすべてのものを含む、軽量でスタンドアロンの実行可能なソフトウェアパッケージです。 コンテナは互いに分離されており、ネットワークやストレージに接続でき、現在の状態に基づいて新しいイメージを作成するために使用できます。 

Dockerコンテナは、コンピュータハードウェアの上にリソースを大量に消費するソフトウェア抽象化レイヤーを使用する仮想化よりも、ソフトウェア作成が高速で効率的です。 さらに、Docker コンテナは、仮想マシンよりも必要な物理ハードウェアリソースが少なく、明確に定義されたチャネルを介してホストシステムと通信します。

WebアプリケーションにDockerを使用する理由

Docker は、一貫性のある環境、効率的なリソース使用、速度、コンテナの分離、スケーラビリティ、柔軟性、移植性など、さまざまな理由でエンタープライズ アプリケーションを構築する開発者に人気のある選択肢です。 また、Dockerは、これらと同じ理由でWeb開発で人気があります。 

一貫性のある環境

Docker コンテナを使用すると、Web 開発者は、開発から本番環境まで一貫した環境を提供する Web アプリケーションを構築できます。 Docker は、分離されたコンテナ内にアプリケーションの実行に必要なすべてのコンポーネントを含めることで、開発者がコンテナを作成およびパッケージ化し、さまざまな開発、テスト、および本番環境でコンテナを実行して品質、セキュリティ、パフォーマンスを確保できるようにすることで、これらの問題に対処します。 このアプローチにより、開発者は「自分のマシンでは動作する」という一般的でイライラする難問を防ぎ、開発からデプロイまで、どこでもコードが適切に実行および実行されることが保証されます。

リソースの使用効率

Docker は軽量アーキテクチャにより、仮想マシンよりも効率的にシステムリソースを使用するため、開発者は同じハードウェアでより多くのアプリケーションを実行できます。 Docker コンテナを使用すると、複数のコンテナを 1 つのホストで実行でき、コンテナに組み込まれている分離機能と割り当て機能によりリソース効率が向上します。 さらに、コンテナはタスクを実行するために必要なメモリとディスク容量が少なくて済むため、ハードウェアコストが節約され、リソース管理が容易になります。 また、Docker は、必要に応じてコンテナイメージを再利用できるようにすることで、開発時間を節約します。 

速度

また、Dockerの設計とコンポーネントは、コンテナ環境のセットアップと破棄において開発者に大きな速度上の利点をもたらし、軽量で柔軟なアプリケーションアーキテクチャにより、必要なプロセスを数秒で完了することができます。 これにより、開発者はコンテナ化されたアプリケーションを迅速に反復処理し、作成したものの作成、ビルド、テスト、監視、デプロイの生産性を向上させることができます。  

隔離

Dockerのアプリケーション分離機能は、開発者に大きなメリットをもたらし、開発者はコードの記述とコンテナとアプリケーションのビルドを同時に行うことができ、一方の変更が他方に影響を与えることはありません。 開発者は、これらの機能により、他の場所で使用する前に不良コードを見つけて分離できるため、セキュリティと管理性が向上します。

拡張性、柔軟性、移植性

また、Docker の柔軟なプラットフォーム設計により、開発者は需要に応じてアプリケーションを簡単にスケールアップまたはスケールダウンできる幅広い機能を提供すると同時に、アプリケーションを異なるサーバーにデプロイすることもできます。 これらの機能により、開発者は必要に応じてさまざまなワークロードとシステムリソースを管理できます。 また、その移植性機能により、開発者はアプリケーションを一度作成すれば、その後はどの環境でも使用できるため、開発サイクルから本番環境までの信頼性と適切な運用がさらに保証されます。

Web 開発者が Docker を使用する方法

今日のWeb開発者には、目的の本番環境に合わせてすばやくセットアップできるローカル開発環境としての柔軟性など、さまざまなDockerのユースケースがあります。マイクロサービスアーキテクチャの重要なパートナーとして、各サービスを個別に開発、テスト、およびデプロイできます。または、自動テストとデプロイのための継続的インテグレーションおよび継続的デプロイ (CI/CD) パイプラインの不可欠なコンポーネントとして。

その他の重要なDockerのユースケースには、コンテナ化に関する開発者の経験とスキルを促進するのに役立つ、強力で知識豊富なユーザーコミュニティの利用可能性が含まれます。重要なクロスプラットフォームの生産とテストに対するその重要性と適合性。また、幅広いアプリケーションのニーズに使用できるコンテナイメージの豊富なリソースと可用性を備えています。 

Web 開発用の Docker の使用を開始する ( 6 ステップ)

それで、 あなたはDockerコンテナ を迅速に稼働させたいですか? Docker Desktop GUI を使用して詳しく見ていきましょう。 この例では、Microsoft Windows の Docker バージョンを使用しますが、 Mac で使用する Docker バージョンや 、さまざまな Linux バージョンもあります。 

ステップ 1:Dockerデスクトップをインストールする

まず、ドキュメントまたは リリースノート から インストーラーをダウンロードします 。

Docker Desktop for Windows Installer.exeをダブルクリックしますインストーラーを実行します。 デフォルトでは、Docker Desktop は C:\Program Files\Docker\Docker にインストールされます。

プロンプトが表示されたら、バックエンドの選択に応じて、構成ページで Hyper-V オプションではなく WSL 2 オプションを選択してください。 システムが 2 つのオプションのいずれかしかサポートしていない場合、使用するバックエンドを選択することはできません。

インストールウィザードの指示に従ってインストーラーを認証し、インストールを続行します。 インストールが成功したら、[ 閉じる ] を選択してインストール プロセスを完了します。

ステップ 2: Dockerfile を作成する

Dockerfile は、開発者が Docker コンテナイメージをどのように構築するかについての詳細を提供する実行中の命令スクリプトを含むテキストベースのファイルです。ファイル拡張子を使用しない Dockerfile は、 getting-started-app ディレクトリに Dockerfile という名前のファイルを作成することでビルドされます。package.json ファイルが見つかりました。 

Dockerfile には、コンテナのオペレーティングシステム、ファイルの場所、環境、依存関係、構成などに関する詳細が含まれています。 高品質の Dockerfile を作成するための便利な Docker のベスト プラクティス ドキュメントを確認してください。 

以下は、Apache Web サーバーを設定するための基本的な Dockerfile の例です。 

プロジェクトに Dockerfile を作成します。

FROM httpd:2.4
COPY ./public-html/ /usr/local/apache2/htdocs/

次に、コマンドを実行して Docker イメージをビルドして実行します。

$ docker build -t my-apache2
$ docker run -dit --name my-running-app -p 8080:80 my-apache2

http://localhost:8080にアクセスして、動作を確認してください。

ステップ 3: Docker イメージをビルドする

作成したばかりのDockerfileを使用すると、最初のDockerコンテナイメージのビルドを開始できます。 前の手順で開始した docker build コマンドは 、Dockerfile と関連する "コンテキスト" (指定された PATH または URL にあるファイルのセット ) を使用して新しい Docker イメージ を開始しました。ビルド プロセスは、コンテキスト内の任意のファイルを参照できます。Docker イメージは、新しいイメージ プロジェクトを開始するためにリポジトリからダウンロードする必要がある基本イメージから始まります。

ステップ 4:Dockerコンテナを実行する

新しいコンテナを実行するには、新しいコンテナでコマンドを実行する docker run コマンドから開始します。 このコマンドは、必要に応じてイメージをプルし、コンテナを起動します。 デフォルトでは、docker create または docker run を使用してコンテナを作成または実行すると、コンテナ のポートは外部に公開されません。 Docker の外部のサービスでポートを利用できるようにするには、--publish または -p flag コマンドを使用する必要があります。 これにより、ホストにファイアウォールルールが作成され、コンテナポートがDockerホスト上のポートにマッピングされ、外部にマッピングされます。 

ステップ 5:Webアプリケーションにアクセスする

Docker コンテナー内で実行されている Web アプリケーションにアクセスする方法。

Docker コンテナ内で実行されている Web アプリケーションにアクセスするには、コンテナのポートをホストに公開する必要があります。 これは、--publish フラグまたは -p フラグを指定した docker run コマンドを使用して実行できます。--publish コマンドの形式は [host_port]:[container_port] です。

Docker CLI を使用してコンテナを実行し、そのポートを公開する方法の例を次に示します。

$ docker run -d -p 8080:80 docker/welcome-to-docker

このコマンドでは、最初の 8080 はホスト ポートを参照します。 これは、コンテナ内で実行されているアプリケーションにアクセスするために使用されるローカル マシン上のポートです。 2番目の 80 はコンテナ港を指します。 これは、コンテナ内のアプリケーションが着信接続をリッスンするポートです。 したがって、このコマンドは、ホストのポート 8080 からコンテナー システム上のポート 80 にバインドされます。

公開されたポートでコンテナを実行した後、Web ブラウザを開いて http://localhost:8080 にアクセスすると、Web アプリケーションにアクセスできます。

Docker Compose を使用して、コンテナを実行し、そのポートを公開することもできます。 これを行う compose.yaml ファイルの例を次に示します。

services:
 app:
   image: docker/welcome-to-docker
   ports:
     - 8080:80

このファイルを作成した後、 docker compose up コマンドでアプリケーションを起動できます。 その後、 http://localhost:8080でWebアプリケーションにアクセスできます。

ステップ 6:変更を加えて更新する

コンテナ内のDockerアプリケーションを更新するには 、いくつかの手順が必要です。 コマンドラインインターフェイスでは、 docker stop コマンドを使用してコンテナを停止し、 docker rm (remove)コマンドを使用して既存のコンテナを削除できます。 次に、更新されたコンテナーで新しい docker run コマンドを使用して、新しい更新されたコンテナーを開始できます。 古いコンテナは、ホストのポート 3000すでに使用しているため、置き換える前に停止する必要があります。 マシン上の 1 つのプロセス (コンテナを含む) のみが、一度に特定のポートをリッスンできます。 古いコンテナを停止した後でのみ、コンテナを取り外して新しいコンテナと交換できます。 

結論

このブログ記事では、DockerがWeb開発者の運用と創造性をスピードアップおよび改善するための貴重なメリットをどのようにもたらすかについて学び、Web開発者がDockerをWeb開発に使用するための基本的な手順など、Web開発者が初日にプラットフォームを開始する方法に触れました。

Docker は、軽量アーキテクチャと広範なコラボレーション、アプリケーション設計、スケーラビリティ、およびその他の利点により、Web 開発の合理化されたワークフローを提供します。 Docker は Web アプリケーション開発者の能力を拡張し、より優れたコードの構築から信頼性の高いコードのテスト、監視、デプロイまで、あらゆることに対応する柔軟なツールを提供します。 

ニュースレターを購読して 、Docker とその最新の使用法とイノベーションに関する最新情報を入手してください。 

さらに詳しく