9.1 Docker Hubとの再会
Docker Hubをもっと深く知ってみよう!繰り返しになるけど、Docker Hubは主要なパブリックDockerレジストリで、ユーザーがコンテナイメージを保存、共有、見つけることができるんだよ。このプラットフォームは、公式の組織やコミュニティが作成した膨大な数のコンテナにアクセスする手段を提供してる。今回は、どうやってDocker Hubから効率よくイメージを探してダウンロードするかを学んでいくよ。
Docker Hubサービスの主なタスク
Docker Hubは、クラウドサービスで、イメージを中央リポジトリにアップロードしてそこから取得することができる場所なんだ。このサービスは、開発者が自分のイメージを共有したり、他の人が作ったソリューションを利用するためのプラットフォームになってる。Docker Hubの主な機能には以下が含まれるよ:
- パブリックおよびプライベートリポジトリ: すべての人がアクセスできる公開イメージの保存や、特定のユーザーだけが利用できる限定的なアクセス設定も可能。
- 自動ビルド (automated builds): GitHubのようなバージョン管理システムと連携して、コードの変更ごとに自動でイメージをビルドする機能。
- ウェブフック (webhooks): イメージが更新されたときに自動実行されるアクションを設定する機能。
9.2 既存のイメージを探す
1. Docker HubのWebインターフェイスを使う
- Docker Hubのサイトを開く: ブラウザでDocker Hubを開こう。
- イメージを検索する: プロジェクト関連のイメージ名やキーワードを検索バーに入力。例えば、Nginxのイメージを探す場合は「nginx」と入力してEnterキーを押してね。
- 結果を確認する: 検索結果には関連するイメージが表示されるよ。公式なイメージは「Official」とマークされていて、Dockerや関連する組織によってサポートされている。他のユーザーからのイメージにはユーザー名や組織名が表示されているよ。
- イメージを選ぶ: 気になるイメージをクリックすると、その説明、利用可能なタグ、使用方法の手順、その他の役立つ情報を確認できるよ。
2. コマンドラインを使ったイメージ検索
Dockerでは、コマンドラインからdocker search
コマンドを使って直接イメージを検索することもできるよ。
コマンド例:
docker search nginx
このコマンドを実行すると、nginx
という名前や説明を持つイメージのリストが表示されるよ。イメージの名前、説明、スター数(評価)、公式ステータスのマーク、自動ビルド情報が表示されるんだ。
出力例:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13764 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for... 2135 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM... 819 [OK]
9.3 イメージのダウンロード
必要なイメージを見つけたら、docker pull
コマンドを使ってローカルマシンにダウンロードできるよ。
1. 特定のイメージをダウンロードする
特定のイメージをダウンロードするには、以下の構文を使ってね:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
ここで:
- NAME: イメージの名前。
- TAG: (オプション)イメージのタグ。特に指定しなければ、デフォルトで
latest
タグが使われるよ。 - @DIGEST: (オプション)SHA256イメージ識別子。
イメージダウンロードの例:
この例では、nginx
の最新イメージ(タグlatest
)をダウンロードするよ。
docker pull nginx:latest
2. 特定のタグ付きイメージのダウンロード
特定のタグ付きイメージが必要な場合は、コロンの後にタグを指定してね。この例では、Ubuntuバージョン20.04のイメージをダウンロードするよ。
docker pull ubuntu:20.04
3. ダウンロードしたイメージの確認
イメージをダウンロードした後、docker images
コマンドを使えば、ローカルマシンにあるイメージの一覧を確認できるよ。
コマンド例:
このコマンドの出力では、リポジトリ、タグ、イメージ識別子、作成日時、サイズを含む、すべてのダウンロード済みイメージの一覧が表示されるよ。
docker images
9.4 既成イメージの使用例
1. Nginxウェブサーバーの起動
Nginxイメージをダウンロードした後、そのベースでコンテナをすぐに起動できるよ。
例:
この例では、Nginx
コンテナをバックグラウンドで起動して、コンテナのポート80をホストマシンのポート8080にリダイレクトするよ。これで、ブラウザを開いてhttp://localhost:8080を入力するとNginx
ウェブサーバーにアクセスできるよ。
docker run -d -p 8080:80 nginx
2. MySQLデータベースの起動
Docker HubはMySQLのようなデータベースの既成イメージを提供していて、開発とテストのためにデータベースを簡単に展開できるよ。
例:
この例では、MySQLコンテナを起動し、rootユーザーのパスワードを設定して、コンテナのポート3306をホストマシンのポート3306にリダイレクトするよ。
docker run -d -p 3306:3306 --name my_mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest
3. Redisイメージを使ったキャッシング
Redisは人気のあるキャッシュシステムで、Docker HubはRedisの既成イメージを提供しているから、簡単に展開できるよ。
例:
この例では、Redisコンテナを起動して、コンテナのポート6379をホストマシンのポート6379にリダイレクトするよ。
docker run -d -p 6379:6379 --name my_redis redis:latest
GO TO FULL VERSION