【Docker基礎】Docker Hubとイメージ

 Docker ではコンテナを作るために イメージ を使いますが、多くの場合、そのイメージを 自分で1から作る ことはほとんどありません。
 なぜなら、よく使われる基本的なイメージ(OSもどきや、サーバーソフトウェアが入ったもの)は、Docker Hub と呼ばれる公式レジストリからダウンロードできるからです。ここでは Docker Hub と、そこに登録されているさまざまなイメージについて簡単に解説します。

Docker Hub とは何か

 Docker Hub は、コンテナイメージの配布場所(レジストリ)として公式が運営しているサービスです。
 スマートフォンで例えるなら “Google Play ストア” のような存在で、数多くのコンテナイメージが登録・公開されています。誰でも自由に利用・公開ができるので、オープンソースプロジェクトや個人が作成したイメージがたくさん集まっています。

  • URLhttps://hub.docker.com
  • 利用方法: docker pull <イメージ名> コマンドなどで、イメージをダウンロード

イメージとは何か

イメージは、コンテナの「素(もと)」 となるものです。
 ISOファイルのように、OS やソフトウェアがまとまった形でパッケージ化されており、イメージからコンテナを作成 することで、実際にプログラムを起動・運用できます。

  • OSもどきだけの最小構成 だけが入ったもの(例: Alpine Linux, Debian, CentOS など)
  • OS + アプリケーション がセットになったもの(例: OS + Apache、OS + MySQL など)

 自分で 1 から OS 関連のファイルを用意するのは大変ですが、Docker Hub から取得すれば、すぐにコンテナを起動できるのが大きなメリットです。

Docker Hubで公開されているイメージの種類

  1. OSのみのイメージ
    ・Linux には Red Hat, CentOS, Ubuntu, Alpine, Debian… などのディストリビューションが多数あり、さらにバージョンによって細かく分かれています。
  2. OS + ソフトウェア(アプリケーション)
    ・例: Alpine + Apache 2.4, Debian + MySQL 5.7 など
    ・Webサーバー、データベース、メールサーバーなど、さまざまなソフトウェアが組み込まれたイメージが揃っています。
  3. バリエーション豊富なソフトウェア
    ・同じソフトウェアでもバージョンが異なるイメージが用意されている。
    ・例: MySQL 8.0MySQL 5.7 など。

組み合わせは無限大

「OS の種類 × ソフトウェア × バージョン」の組み合わせが多数存在するため、自分の用途に合ったイメージを選ぶことができます。

プライベートなレジストリも可能

 Docker Hub はパブリックなレジストリですが、企業内のサーバーに プライベートな Docker レジストリ を構築することもできます。

  • セキュリティ上の理由で社外に公開したくないソフトウェア
  • 社内で開発した独自イメージ
    外部に知られずに管理・配布することが可能です。

まとめ

  • Docker Hub
    ・公式の Docker レジストリで、コンテナイメージの “倉庫”
    ・誰でも無料で利用でき、多数の OS やソフトウェアイメージが揃っている。
  • イメージ
    ・コンテナを作るための “設計図” のようなもので、ISOファイルに近い概念
    ・OS だけのもの、OS+ソフトウェア入りのものなどバリエーションが無数にある。
  • プライベートレジストリ
    必要に応じて社内などに独自のレジストリを作り、イメージをやり取りできる。

 Docker Hub によって、必要なイメージをすぐに入手できる環境が整っているのは Docker の大きなメリットです。次の章では、実際にイメージを取得・利用するためのコマンドや基本的な操作方法について、さらに詳しく見ていきましょう。