Docker · 1 min read · Nov 24, 2025

Docker パート 4: カスタム Docker イメージのビルドと公開

最初のパートと第二のパートでは、Docker コンテナを管理するためにシステムを準備し、技術的な観点から他の仮想化技術に対して Docker コンテナを使用することが何を意味するのかをカバーしました。次に、第三のパートでは、Docker イメージを実際に操作し、基本を学び、WordPress または DokuWiki を使用して最初の Notepad コンテナを作成しました。

この第四のパートでは、Docker イメージがどのようにビルドされるかを見て、友人、同僚、コミュニティと共有できるカスタムイメージを作成します。

このチュートリアルでは、Whale Docker イメージを使用します。Whale は Docker の公式マスコットであり、Whale Docker イメージは cowsay プログラムに似ており、メッセージとともにターミナルに牛の ASCII 画像を生成します。また、Tux ペンギンや Linux マスコットなどの他の動物の事前に作成された画像を使用して画像を生成することもできます。

Docker ファイルの紹介

前のパートでは、Docker Hub に自己紹介し、コンテナイメージの発見、イメージのビルド、およびそれらのイメージの配布のためのクラウドベースの集中リソースであることを学びました。また、Docker イメージはベースイメージの上にあるマルチレイヤーイメージであることも学びました。つまり、ベースイメージを使用することで、Docker イメージに適した OS をゼロから作成する手間が省け、ソフトウェアが存在する上層をカスタマイズするオプションが得られます。

カスタムイメージをベースイメージを使用して作成するには、Docker エンジンにパッケージやファイルをインストールおよび構成する方法、そしてそれに伴う設定に関する指示を提供する必要があります。これらの指示は「dockerfile」と呼ばれるプレーンテキストファイルに書かれています。Dockerfile は、シェフに渡すレシピのようなもので、シェフが素晴らしい食事を作ってくれます。これらの Docker ファイルは、「指示」と呼ばれるシンプルで説明的なステップのセットを使用して書かれています。各指示は、イメージ内に新しいレイヤーを作成します。指示には、コマンドを実行する、ファイルやディレクトリを追加する、イメージからコンテナを起動する際に実行するプロセスなどのアクションが含まれます。このプロセスは、シェルスクリプトで一連のコマンドを設定するのと同じです。イメージのビルドをリクエストすると、Docker は Dockerfile を読み取り、指示を実行し、最終的なイメージを返します。

Docker イメージのビルド

カスタム Docker イメージをビルドする方法は 2 つあります。コンピュータ上でビルドするか、前述の Docker Hub を使用することができます。このパートでは、ローカルで Docker イメージをビルドし、その後 Docker Hub レジストリに公開する方法を学びます。

Dockerfile を使用してローカルでビルド

「Whale say」イメージを使用してカスタム Docker イメージを作成します。これは小さな Docker イメージ(Ubuntu イメージに基づいており)で、実行するとプログラムされたメッセージを返します。

まず、ターミナルを起動し、次のコマンドを入力して新しいフォルダを作成します:

mkdir mywhale

このディレクトリは、ビルドの「コンテキスト」として機能します。コンテキストとは、イメージを正常にビルドするために必要なすべてのものが含まれていることを意味します。

次のコマンドで新しいフォルダに入ります:

cd mywhale

そして、次のコマンドを入力してフォルダ内に Dockerfile を作成します:

touch Dockerfile

今、’ll’ コマンドを実行すると、作成した空の Dockerfile が表示されるはずです:

ll
$ ll  
total 8.0K  
-rw-rw-r-- 1 user user 0 23:26 Dockerfile

お気に入りのテキストエディタで開き、次の内容を追加します:

FROM docker/whalesay:latest

この最初の指示行は、FROM キーワードを使用して、Docker にどのイメージを基にしているのかを伝えます。新しい作業を既存の whalesay イメージに基づいています。

次に追加する指示は、私たちのクジラに運勢を伝える能力を与えます。このタスクを達成するために、Ubuntu リポジトリで利用可能な fortune パッケージを使用します(クジライメージは Ubuntu イメージに基づいていることを思い出してください)。fortunes プログラムには、クジラが言うための賢い言葉を印刷するコマンドがあります。

したがって、最初のステップはそれをインストールすることです。これを行うために、通常の apt install 指示を追加します:

RUN apt -y update && apt -y install fortunes

イメージに必要なソフトウェアがインストールされたら、イメージがロードされたときに実行するようにソフトウェアに指示します。これを行うために、次の指示を追加します:

CMD /usr/games/fortune -a | cowsay

上記の行は、fortunes プログラムにランダムに選ばれた引用を cowsay プログラムに送信するように指示します。

これで完了です!ファイルを保存して終了します。
「cat Dockerfile」を実行して、Dockerfile が次のようになっていることを確認できます:

cat Dockerfile
FROM docker/whalesay:latest  
RUN apt-get -y update && apt-get install -y fortunes  
CMD /usr/games/fortune -a | cowsay

すべてが(おそらく)良さそうなので、Docker イメージをビルドする時が来ました(コマンドの最後に . を忘れないでください)。:

docker build -t my-docker-whale .

上記のコマンドは、現在のフォルダにある Dockerfile を取り込み、「my-docker-whale」という名前のイメージをローカルマシンにビルドします。

次のコマンドを実行して、Docker イメージが実際にコンピュータに保存されていることを確認できます:

docker images

次に、次のコマンドを入力して Docker イメージを実行できます:

docker run my-docker-whale

実行すると、次のような画像が表示されます。

Docker クジラの画像

Docker Hub にカスタム Docker イメージを公開する

次のオプションは、作成した Docker イメージを Docker Hub リポジトリに公開することです。そのためには、Docker Hub サインアップウェブページでアカウントを作成し、アカウントの名前、パスワード、メールアドレスを提供する必要があります。また、Docker Hub サービスは公開 Docker イメージに対して無料であることも指摘しておきます。アカウントを作成したら、以前に作成したイメージをプッシュして、他の人が使用できるようにします。

そのためには、「my-docker-whale」イメージの ID と TAG が必要です。

再度「docker images」コマンドを実行し、Docker イメージの ID と TAG をメモします。例: a69f3f5e1a31。

次に、次のコマンドを使用して、Docker イメージを外の世界への旅の準備をします(コマンドのアカウント名部分は、Docker Hub プロファイルページのアカウント名です):

docker tag a69f3f5e1a31 accountname/my-docker-whale:latest

「docker images」コマンドを実行して、新しくタグ付けされたイメージを確認します。

次に、「docker login」コマンドを使用して、コマンドラインから Docker Hub にログインします。

ログインコマンドの形式は次のとおりです:

docker login --username=yourhubusername [email protected]

プロンプトが表示されたら、パスワードを入力して Enter を押します。

これで、新しく作成したリポジトリにイメージをプッシュできます:

docker push accountname/my-docker-whale

上記のコマンドは、接続のアップロード帯域幅に応じて完了するまでに時間がかかる場合があります(私たちの例では約 180MB のデータをアップロードします)。完了したら、Docker Hub のプロファイルに移動して、新しいイメージを確認できます。

カスタムイメージのダウンロード

Docker Hub リポジトリからイメージをプルする場合は、最初にローカルマシンから元のイメージを削除する必要があります。Docker は、ローカルとリモートのイメージが同一であるため、Hub からプルすることを拒否します。

前のパートから覚えているように、Docker イメージを削除するには、「docker rmi」コマンドを実行する必要があります。ID または名前を使用してイメージを削除できます:

docker rmi -f a69f3f5e1a31

イメージが削除されたので、次のコマンドを使用してリポジトリからイメージをプルしてロードできます。「docker run」コマンドを使用し、Docker Hub からのアカウント名を含めます。

docker run accountname/my-docker-whale

以前にイメージを削除したため、ローカルシステムではもはや利用できないため、Docker はそれをダウンロードし、指定された場所に保存します。

まとめ

このパートでは、Docker ファイルを作成し、基本的な指示を書き、それをレシピとして使用してイメージをビルドする方法を学びました。また、新しいカスタムイメージを Docker Hub レジストリにプッシュし、ローカルマシンにプルする基本もカバーしました。この Docker チュートリアルシリーズの次のパートでは、イメージビルディング手順を自動化する方法を紹介し、必要なときにいつでもカスタムイメージを瞬時に作成できるようにします!お楽しみに。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。