アルパむンドッカヌ公匏むメヌゞの䜿い方

投皿日: 9月 8, 2022

コンテナフレンドリヌな蚭蚈により、 Alpine Docker公匏むメヌゞ(DOI) は、開発者が軜量のクロスプラットフォヌムアプリケヌションを構築および展開するのに圹立ちたす。 これは、2005幎にデビュヌしたアルパむンLinuxに基づいおおり、今日の最新の䞻芁なLinuxディストリビュヌションの1぀になっおいたす。 

比范的新しいむメヌゞを䜿甚する際にセキュリティ䞊の懞念を衚明する開発者もいたすが、Alpineは確固たる評刀を埗おいたす。 開発者は、次の理由でAlpineを奜みたす。  

実際、Alpine DOI は Docker Hub で最も人気のあるコンテナむメヌゞの 1 ぀です。 䜜業を開始できるように、このむメヌゞの詳现ず、次のプロゞェクトで Alpine Docker 公匏むメヌゞを䜿甚する方法に぀いお説明したす。 さらに、Alpineを䜿甚しお可胜な限り最もスリムな画像を取埗する方法に぀いお説明したす。 飛び蟌みたしょう!

このチュヌトリアルの内容:

アルパむンドッカヌの公匏むメヌゞずは䜕ですか?

Alpine Docker公匏むメヌゞ900×600 1の䜿い方

Alpine DOI は、Alpine Linux Docker コンテナのビルディングブロックです。 これは、Dockerずアプリケヌションの動䜜方法を指瀺する 実行可胜゜フトりェアパッケヌゞ です。 むメヌゞには、゜ヌス コヌド、ラむブラリ、ツヌル、およびアプリケヌションに必芁なその他の䞻芁な䟝存関係が含たれおいたす。 これらのコンポヌネントは、開発者䞭心の機胜を有効にしながら、Alpine Linuxの機胜を支揎したす。 

Alpine Docker 公匏むメヌゞは、いく぀かの点で他の Linux ベヌスのむメヌゞずは異なりたす。 たず、Alpine は C 暙準ラむブラリの musl libc 実装に基づいおおり、 GNU coreutils の代わりに BusyBox を䜿甚しおいたす。GNUは倚くのLinuxフレンドリヌなプログラムを䞀緒にパッケヌゞ化しおいたすが、BusyBoxは1぀の実行可胜ファむル内に少数のコア関数をバンドルしおいたす。 

私たちのUbuntuずDebianのむメヌゞは glibc ず coreutilsを利甚しおいたすが、これらの代替手段は比范的軜量でリ゜ヌスにやさしく、拡匵機胜が少なく、肥倧化が少ないです。

その結果、Alpineは、劥協のない互換性やむメヌゞの機胜を必芁ずしない開発者にアピヌルしたす。 たた、アルパむンDOIは可動郚品が少ないため、ナヌザヌフレンドリヌで簡単です。

Alpine Linuxは、リ゜ヌスが限られたデバむスでも優れたパフォヌマンスを発揮し、単玔なアプリケヌションの開発やサヌバヌのスピンアップに適しおいたす。 コンテナの消費量は少なく、RAMずストレヌゞスペヌスも少なくなりたす。 

アルパむンドッカヌ公匏むメヌゞは、次の機胜も提䟛したす。

マルチアヌキテクチャのサポヌトにより、デスクトップ、モバむルデバむス、ラックマりントサヌバヌ、Raspberry Pis、さらには新しいMシリヌズMacでAlpineを実行できたす。 党䜓ずしお、Alpineはさたざたな組み蟌みシステムずうたく調和しおいたす。 

これらは、アルパむンDOIを䜿甚する利点のほんの䞀郚です。 次に、アプリケヌションでむメヌゞを利甚する方法に぀いお説明したす。 

アルパむンを䜿甚する堎合

アルパむンの䜿甚に興味があるかもしれたせんが、「い぀䜿甚すればよいですか?」ず疑問に思っおいるこずに気づきたす。 コンテナ化されたアルパむンは、いく぀かの重芁な分野で茝いおいたす。 

  • サヌバヌの䜜成
  • ルヌタヌベヌスのネットワヌク
  • 開発/テスト環境

アルパむンには他にもいく぀かの甚途がありたすが、ほずんどのプロゞェクトはこの2぀のカテゎリに分類されたす。 党䜓ずしお、圓瀟のAlpineコンテナむメヌゞは、スペヌスの節玄ずセキュリティが重芁な状況で優れおいたす。 

ドッカヌでアルパむンを実行する方法

開始する前に、 Dockerデスクトップをダりンロヌドしおむンストヌル したす。 Docker Desktop は Docker Engine 䞊に構築されおおり、Docker CLI、Docker Compose、およびその他のコア コンポヌネントをバンドルしおいたす。 Docker Desktop を起動するず、Docker CLI コマンドを䜿甚するこずもできたす (これに぀いおは埌で説明したす)。 最埌に、付属のDockerダッシュボヌドは、むメヌゞずコンテナを芖芚的に管理するのに圹立ちたす。 

これらの手順を完了するず、アルパむンをドッカラむズする準備が敎いたす。

手蚘 Linuxナヌザヌの堎合、Dockerは、サヌバヌに倖郚にむンストヌルされおいる堎合、たたはディストリビュヌションのパッケヌゞマネヌゞャヌを介しおむンストヌルされおいる堎合でも、完党に正垞に機胜したす。 ただし、Docker Desktop for Linuxは、必芁なすべおのコンポヌネントをバンドルするこずで時間ず劎力を節玄し、ナヌザヌフレンドリヌなGUIを通じお生産性を向䞊させたす。 

クむック プル コマンドを䜿甚する

プロゞェクトで䜿甚する前に、たずAlpine Docker公匏むメヌゞをプルする必芁がありたす。 最速の方法は、端末から実行 docker pull alpine するこずです。 これにより、 alpine:latest Docker Hub からむメヌゞ (利甚可胜な最新バヌゞョン) が取埗され、マシンにロヌカルにダりンロヌドされたす。 

タヌミナル出力には、プルがい぀完了するか、および alpine ダりンロヌドしたバヌゞョンが衚瀺されたす。 これは、Docker デスクトップ内でも確認できたす。 巊偎のサむドバヌから[ 画像 ]タブに移動したす。 ダりンロヌドした画像のリストが右偎に衚瀺されたす。 あなたはあなたの alpine 画像、タグ、そしおその極小を芋るでしょう(はい、あなたはその暩利を芋たした) 5.29 MB サむズ:

Docker Desktop の UI ず、Alpine を含むダりンロヌド枈みむメヌゞのリスト。
Ubuntu、Debian、Fedoraなどの他のLinuxディストリビュヌションむメヌゞは、Alpineよりも䜕倍も倧きいです。

以䞊が、Docker Desktopず䞀緒にAlpine公匏むメヌゞを䜿甚するための簡単な玹介です。 ただし、すべおのAlpine DOIバヌゞョンは.Dockerfileこのプレヌンテキストファむルには、レむダヌごずにむメヌゞを構築する方法をDockerに指瀺する手順が含たれおいたす。 その他の Dockerfile 䟋に぀いおは、 Alpine Linux GitHub リポゞトリ を参照しおください。  

次は、Alpine Linux にずっおのこれらの Dockerfile の重芁性、CLI ベヌスのワヌクフロヌ、およびその他の重芁な情報に぀いお説明したす。

ドッカヌファむルをビルドする

Alpine はコンテナむメヌゞの暙準ベヌスであるため、その䞊に Dockerfile. 奜み alpine のむメヌゞタグを指定し、このファむルを䜜成するための手順を远加したす。 私たちの䟋は alpine:3.14 それを䜿っお実行可胜 mysql クラむアントを実行したす: 

FROM alpine:3.14
RUN apk add --no-cache mysql-client
ENTRYPOINT ["mysql"]

この堎合、スリムなベヌスむメヌゞから始めお、Alpineの暙準パッケヌゞマネヌゞャヌを䜿甚しお远加 mysql-client したす。 党䜓ずしお、これにより、アプリケヌション内からMySQLデヌタベヌスに察しおコマンドを実行できたす。 

これは、アルパむンDOIを皌働させるための倚くの方法の1぀にすぎたせん。 特に、アルパむンはサヌバヌの構築に適しおいたす。 この動䜜を確認するには、 Docker Compose、Next.js、NGINX を䜿甚した静的コンテンツの提䟛に関する Kathleen Juell のプレれンテヌションをご芧ください。 埋め蟌み動画内のタむムスタンプ 7:07 に移動したす。 

アルパむン公匏むメヌゞは、他のテクノロゞヌ(他のむメヌゞにはないもの)ず密接な関係がありたす。 Docker 公匏むメヌゞの倚くはタグをサポヌトしおいたす -alpine 。 たずえば、静的コンテンツを提䟛する前述の䟋では、 node:16-alpine 画像を builder. 

この関係により、アルパむンずマルチステヌゞビルドは理想的なペアリングになりたす。 マルチステヌゞ ビルドの䞻な目的は最終的なむメヌゞ サむズを小さくするこずであるため、最もスリムな Docker 公匏むメヌゞの 1 ぀から始めるこずをお勧めしたす。

可胜な限りスリムな画像を぀かむ

特定の画像のバヌゞョンを -alpine プルするず、通垞、最もスリムな結果が埗られたす。 これは、前の docker pull [image] コマンドを䜿甚しお実行できたす。 たたは、このむメヌゞ バヌゞョンを䜜成しお Dockerfile 指定し、手順を远加しおカスタマむズする䜙地を残すこずもできたす。 

いずれの堎合も、最も人気のある画像のいく぀かを䜿甚した結果を次に瀺したす。 これらのタグで画像サむズがどのように倉化するかを確認できたす。

むメヌゞタグ画像サむズimage:[version number]-alpine 倧きさ
パむ゜ン:3.9.13867.66 メガバむト46.71 メガバむト
ノヌド:18.8.0939.71 メガバむト164.38 メガバむト
ゞンクス:1.23.1134.51 メガバむト22.13 メガバむト

これは、Docker が Docker Hub から取埗する既定のむメヌゞ タグであるため、このタグを䜿甚し :latest たした。 䞊蚘のPythonで瀺したように、むメヌゞバヌゞョンを -alpine プルするず、フットプリントが95%近く削枛されたす。 

ここから、ビルドプロセス(から Dockerfile䜜業する堎合)ははるかに高速になりたす。 よりスリムな画像に基づくアプリケヌションは、より迅速にスピンアップしたす。 たた、さたざたな docker run コマンドが画像を䜿甚しお -alpine より高速に実行されるこずに docker pull も気付くでしょう。 

ただし、このタグは、芪むメヌゞのバヌゞョン番号を指定しお䜿甚する必芁があるこずに泚意しおください。 実行䞭 docker pull python-alpine たたは docker pull python:latest-alpine 動䜜したせん。 Docker は、むメヌゞが芋぀からない、リポゞトリが存圚しない、コマンドが無効である、たたはログむン情報が必芁であるこずを譊告したす。 これはすべおの画像に適甚されたす。 

今すぐアルパむンを䜿い始めたしょう

アルパむンドッパヌの公匏むメヌゞは、そのシンプルさず小さなサむズのおかげで茝いおいたす。 これは玠晎らしい基本むメヌゞであり、おそらくDockerナヌザヌの間で最も人気があり、カスタマむズの䜙地が十分にありたす。 アルパむンは間違いなく最もナヌザヌフレンドリヌでコンテナ化されたLinuxディストリビュヌションです。 アルパむン公匏むメヌゞの䜿い方に取り組み、それを最倧限に掻甚する方法を玹介したした。 

次のアプリケヌションやサヌバヌにアルパむンを䜿いたいですか? 今すぐアルパむン公匏むメヌゞをプルしお、 ビルドプロセスをすぐに始めたしょう。 サポヌトされおいるタグの詳现に぀いおは、Docker Hub を参照しおください。 

関連資料

関連蚘事