Docker入門 第3回 Docker Hubとは? Docker Hubの使い方、イメージの取得方法

Docker基礎

Docker Hubを使いこなすためには、Docker Hubの仕組みと「イメージ」「タグ」「アーキテクチャ」といった用語の意味を理解することが必要です。それでは学びましょう。

このページから学べること
・Docker Hubで出来ること
・イメージ取得に必要な情報
・Docker Hubでのイメージの管理方法

Docker Hubとは?

Docker Hubとは、Docker社が公式に運用しているDockerレジストリサービスです。Dockerイメージの配布を行なっている場所で、誰でも簡単に利用できます。

・Docker Hub  https://hub.docker.com

Docker Hubはスマホにおけるアプリストアのようなものです。コンテナのイメージがたくさん集まっている場所で、その中から使用するイメージをダウンロードします。

また、自分が作成したイメージをDocker Hubにプッシュして他のメンバーと共有することができます。

Docker Hubは無料で利用できる?

Docker Hubは無料版と有料版があり、大きな違いは次の2つ。
・有料版はプライベートなリポジトリが使える
・無料版はパブリックなリポジトリを使うことになる。

そのため、自分が作成したイメージを特定のメンバだけに公開したい場合は、有料版のDocker Hubを使うことになります。

Docker Hubで公開されているイメージを使うだけであれば、無料版で問題ないです。

・DockerHubとは、イメージの配布を行なう場所。
・自分が作成したイメージの公開も可能。
・Docker Hubの利用は無料。
・有料版はプライベートなリポジトリが使える。

Docker Hubの仕組み

Docker Hubは「イメージ」を管理・配布しているレジストリサービスです。「コンテナ」ではなく「イメージ」を管理しています。混同しないように意識しましょう。

どんなイメージが配布されている?

DockerHubで配布されているイメージは、
・アプリケーション
・UbuntuのようなOS (カーネルは含まない)
・複数のアプリケーションで構成された環境一式
のようなイメージが公開されています。

イメージはバージョンで管理されている

「イメージ」はバージョンごとに管理されていて、アプリのバージョンを指定して「イメージ」を取得することが可能です。Docker Hubではイメージのバージョンのことを「タグ」を呼びます。

たとえば、ubuntuのイメージであれば「20.04」「21.04」「22.04」といったタグ(バージョン)が配布されています。

イメージ、タグ、アーキテクチャとは?

Docker Hubを利用するために必須のワードが次の3つです。

・イメージ
・タグ
・アーキテクチャ

イメージ

イメージ名のこと。ubuntu、mysql、pythonのようなアプリ名がイメージ名となることが一般的です。イメージを取得する際はこのイメージ名を指定します。

例えば、「ubuntuのバージョン21.04」のイメージをダウンロードする場合は、「docker image pullコマンド」を実行します。

docker image pull ubuntu:21.04

タグ

アプリのバージョンのことです。タグを指定しない場合は、latest(最新)となります。
Pythonのイメージの例では「Simple Tags」という箇所に、バージョンがたくさん並んでいることがわかると思います。これがタグです。

タグを指定してイメージをダウンロードする方法

例えば、Pythonの”alpine3.19″というタグのイメージを取得する場合は、イメージ名の後に”:”(コロン)とタグ名を指定します。

docker image pull python:alpine3.19

アーキテクチャ

実行環境のCPUアーキテクチャの種類のことです。
WindowsPCをお使いなら”x86_64″または”amd64″、
M1/M2のMacをお使いなら”arm64″となります。(一般的には)

通常の使用ではアーキテクチャを意識するシーンは少ないです。しかし、イメージの取得とコンテナの起動が異なる環境の場合は、アーキテクチャを意識する必要があります。

アーキテクチャを意識しなくてよい場合

イメージを取得する環境と、コンテナの実行環境が同じであれば、アーキテクチャは意識する必要ありません。
dockerが自動でアーキテクチャを選択してくれます。

アーキテクチャを意識する必要がある場合

逆に、イメージを取得する環境と、コンテナの実行環境が異なるのであれば、コンテナは起動できません。

 

その場合、コンテナ実行環境に合わせたアーキテクチャのイメージを取得する必要があります。

アーキテクチャの確認方法

Docker HubのPythonのページの下部にスクロールすると、対応しているアーキテクチャの情報が確認できます。

試しに、私のM2-Macの環境でPythonのイメージをダウンロードしてみると、”arm64/v8″のイメージがダウンロードされていることがわかります。

①pythonのイメージをダウンロード

②docker inspect コマンドでイメージの詳細情報を確認

アーキテクチャを指定してイメージをダウンロードする方法

アーキテクチャを指定する場合は「–platform」オプションを使用します。
アーキテクチャは「linux/arm/v6」、TAGは「alpine3.19」のpythonのイメージを取得する場合は次のようになります。

docker image pull python:alpine3.19 --platform linux/arm/v6

実行した結果は次のようになります。

ダウンロードしたイメージのアーキテクチャをdocker inspectで確認すると、アーキテクチャが”arm/v6″になっていることがわかります。

タイトルとURLをコピーしました