コンテナフレンドリーな設計により、 Alpine Docker公式イメージ(DOI) は、開発者が軽量のクロスプラットフォームアプリケーションを構築および展開するのに役立ちます。 これは、2005年にデビューしたアルパインLinuxに基づいており、今日の最新の主要なLinuxディストリビューションの1つになっています。
比較的新しいイメージを使用する際にセキュリティ上の懸念を表明する開発者もいますが、Alpineは確固たる評判を得ています。 開発者は、次の理由でAlpineを好みます。
- フットプリントが小さいため、攻撃対象領域が小さくなります(2014年のShellShock Bashエクスプロイトを回避することもできます!
- 使用するディスク容量が少なくなります。
- それはカスタマイズのための強力な基盤を提供します。
- シンプルさを念頭に置いて構築されています。
実際、Alpine DOI は Docker Hub で最も人気のあるコンテナイメージの 1 つです。 作業を開始できるように、このイメージの詳細と、次のプロジェクトで Alpine Docker 公式イメージを使用する方法について説明します。 さらに、Alpineを使用して可能な限り最もスリムな画像を取得する方法について説明します。 飛び込みましょう!
このチュートリアルの内容:
アルパインドッカーの公式イメージとは何ですか?
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とストレージスペースも少なくなります。
アルパインドッカー公式イメージは、次の機能も提供します。
- 堅牢な
apk
パッケージマネージャー - 迅速で一貫性のある 開発とリリースのサイクル と。 その他の Linux ディストリビューション
- サポートされている複数のタグとアーキテクチャ (
amd64
、、、、arm64
arm/v6+
など)ppc64le
マルチアーキテクチャのサポートにより、デスクトップ、モバイルデバイス、ラックマウントサーバー、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と一緒に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.13 | 867.66 メガバイト | 46.71 メガバイト |
ノード:18.8.0 | 939.71 メガバイト | 164.38 メガバイト |
ジンクス:1.23.1 | 134.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 を参照してください。
関連資料
- 公式のアルパインウィキを閲覧してください。
- アル パイン初心者のWikiページから、アルパインの基礎を学びましょう。
- Docker イメージに関する同様の記事をお読みください。
- 最新バージョンの Docker デスクトップをダウンロードしてインストールします。
フィードバック
「アルパインドッカー公式イメージの使用方法」に関する0の考え