LoginSignup
0
2

More than 5 years have passed since last update.

Docker for Windowsを使ってイメージをHubにプッシュする手 順(シリーズその3)

Last updated at Posted at 2017-06-21

dockerレポジトリとは?

レポジトリのコンセプトはGitのレポジトリに似ています。Gitにとっての「アプリケーション」がdockerにとっての「イメージ」で、Gitレポジトリを使ってアプリケーションのバージョン管理をする要領で、dockerレポジトリを使ってイメージのバージョン管理をする、という図式で理解できます。

まずはレポジトリを作る

こんな感じで作ります。
2017-06-19 18_25_27-Zoomit Zoom Window.png

出来ました。
2017-06-19 18_25_54-Zoomit Zoom Window.png

イメージそのものはTagsのページに表示されます。作ったばかりなので中身は空っぽです。
image.png

このページにイメージを表示されるようにプッシュする手順を以下に解説します。

イメージの元になるコンテナを作成する

イメージをコンテナから生成します。細かい作成の手順は省略します。Docker for WindowsでIISウェブサイトの開発環境を作る手順 を参照してください。

プッシュしたいコンテナはこれです。
image.png

このコンテナのイメージはmicrosoft/iisですね。これはコンテナのベースとして使ったイメージですが、Microsoftのオフィシャル・イメージですから、私がどうこう出来るものではありません。私個人のイメージを作成する必要があります。

ところでコンテナは"Hello World"的なWebアプリが設定されています。コンテナのIPをブラウザで表示すると、こんな感じのページが表示されるようになってます。
image.png

あと、今回は手作業で作ったコンテナを使用しますが、dockerfileを利用してスクリプトとして自動的に作成する方が好ましいとされています。

コンテナからイメージを作成する

まず、コンテナが実行していないことを確認します。実行中なら、Ctrl+CやExitなどのコマンドでコンテナを終了してください。

image.png

実行していないことを確認します。

では次にイメージを作成します。docker commitコマンドを使用します。
image.png

  • commit コマンドにはコンテナのID(の一部でも良い)を渡します
  • イメージの名前は「ユーザ名 / レポジトリ名」のパターンで指定します

docker imagesコマンドで作成されたばかりのイメージを確認します。
image.png

ちゃんと出来てますね。

作成したイメージをDockerのHubにプッシュする

まず最初に、Dockerにログインします。
image.png

次に、docker pushでイメージをプッシュします。
image.png

完了しました。
Hubをブラウザで見てみましょう。

image.png

さっきまで空っぽだったTagsページにlatestというタグが付けられたイメージがアップロードされているのが確認できます。

docker searchでたった今アップロードしたイメージが出てくるか試してみましょう。
image.png

結果に出てきました。

タグの名前を指定してプッシュしてみる

タグを明示的に指定しない場合、自動的にlatestというタグが付けられます。
例えばテストが終了してイメージが安定していることが確認できたら、バージョンをタグとして指定してイメージをプッシュする、というのが一般的なパターンのようです。

イメージの名前のすぐあとにタグを明示的に指定します。
image.png

ブラウザで見てみましょう。
image.png

バージョン1.0のタグが付いたイメージがレポジトリに加えられたことが確認できます。

まとめ

Docker Hubにアカウントを作成して、イメージをプッシュしてイメージのライブラリを作成・共有できます。もちろんこれはパブリックに公開されるので個人情報や企業秘密などが含まれないように注意しなくてはいけません。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2