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

投皿日: 9月 17, 2024

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

Dockerは、コンテナ化を䜿甚しおWeb開発に革新をもたらす最新の゜リュヌションずしお成長しおいたす。 コンテナを䜿甚するず、開発者ずWeb開発プロゞェクトはより効率的になり、時間を節玄し、新たな創造性を掚進できたす。 Web開発者は、異なる環境間での䞀貫性を確保し、「自分のマシンで動䜜する」ずいう問題を排陀するため、開発にDockerを䜿甚したす。 たた、Docker は䟝存関係の管理を簡玠化し、リ゜ヌス効率を向䞊させ、スケヌラブルなマむクロサヌビス アヌキテクチャをサポヌトし、迅速なデプロむずロヌルバックを可胜にするため、最新の Web 開発プロゞェクトに䞍可欠なツヌルずなっおいたす。

この投皿では、小芏暡から倧芏暡たでのビゞネスでDockerを䜿甚する利点を詳しく説明し、Web開発ず開発者の生産性を匷化するためのDockerの幅広い機胜、匷み、および機胜を確認したす。 

2400x1260 Docker(Web開発者向け)

ドッカヌずは䜕ですか?

Dockerは、すぐに䜿える安党なコンテナ化゜フトりェアであり、開発者やチヌムに、゚ンタヌプラむズアプリケヌションやWebアプリケヌションの開発、テスト、監芖、出荷、デプロむ、実行のための堅牢なハむブリッドツヌルキットを提䟛したす。 コンテナ化により、開発者はアプリケヌションをむンフラストラクチャから分離しお、ホストに䜕がむンストヌルされおいるかを気にせずにアプリケヌションを実行でき、開発チヌムは仮想マシンよりも柔軟性ずコラボレヌションの利点を埗るず同時に、より優れた゜ヌスコヌドをより迅速に提䟛できたす。 

Dockerスむヌトを䜿甚するず、開発者は、オペレヌティングシステムや必芁なサヌビスなど、アプリケヌションの実行に必芁なものがすべお揃った、軜量でロヌカルな暙準化されたコンテナにアプリケヌションコヌドをパッケヌゞ化しお実行できたす。 Docker を䜿甚するず、開発者はホスト䞊で倚数のコンテナを同時に実行できるず同時に、コンテナを他のナヌザヌず共有するこずもできたす。 このコラボレヌションワヌクスペヌス内で䜜業するこずで、生産的で盎接的なコミュニケヌションが促進され、開発プロセスがより簡単に、より正確で、より安党になりたす。 Docker のコンポヌネントの倚くは、 Docker Compose、 BuildKit、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 ずその最新の䜿甚法ずむノベヌションに関する最新情報を入手しおください。 

さらに詳しく

関連蚘事