DockerHubに公開する

Last-modified: Fri, 08 Mar 2019 20:49:15 JST (11d)

DockerHubへ作成したコンテナを公開してみました。

前提

DocukerHubのアカウントを持っていること。

登録するコンテナを作成

登録するコンテナを作成します。githubかbitbucketで管理しておくと、DockerHubの自動ビルドが使えます。
必須ではないので、ローカルでコチコチ作っても構いません。
ここでは、PHP7開発用コンテナを作成しました。

DockerHubへ登録

  1. DockerHubへログインします。
  2. ログインすると、リポジトリを作るか?と聞いてくるので、「Create a Repository」をクリックします。
    docker-hub00.jpg
  3. リポジトリを作成します。適当なイメージ名と説明を入力します。DockerHubの無料アカウントではプライベートリポジトリが1つだけ持てます。ここではパブリックリポジトリにします。
    docker-hub01.jpg
  4. 下にスクロールすると、GitHubやBitBucketとつなぐオプションが選べます。自分の環境はGitHubと連携させていますので、GitHub連携が有効になっています。なくても問題ないですが、更新時手動でアップロードしないといけません。
    docker-hub02.jpg
  5. GitHubやBitBucket連携している場合、自動ビルドの設定を行います。Buildタブをクリックし、Configure Automated Buildsボタンをクリックします。
    docker-hub03.jpg
  6. 自動ビルドの設定をします。チェックアウトするGitHubのリポジトリの指定を行います。オプションのREPOSITORY LINKSは、説明によるとDockerfileのFromで使用しているベースイメージが更新されたタイミングで自動ビルドが走るようです。
    docker-hub04.jpg
  7. 下にスクロールします。ビルドを走らせるトリガの設定です。任意のブランチ、タグをトリガにすることができます。
    設定についてはこの辺りが参考になるかと思います。
    ここではデフォルトのままmasterブランチにpushしたらlatestを更新するようにします。
    ここで、「Save and Build」ボタンをクリックすると、即座にビルドが走ります。が、DockerHubの自動ビルドは運が悪いと2~30分くらい待たされるPending地獄だったりするので、ここでは「Save」し、いったんイメージを手動で上げます。
    docker-hub05.jpg
  8. GitHubやBitBucket連携をしていない、または手動で上げる場合は、以下の手順になります。
    1. Dockerfileをまずビルドします。この時タグ名を「DockerHubアカウント名/リポジトリ名」とします。
      docker build --tag=akira345/php7app-dev .
    2. ビルド出来たら、「DockerHubアカウント名/リポジトリ名」でイメージができていることを確認します。
      docker images
    3. 最終確認をしましょう。
      docker run --rm ・・・・・・
    4. 問題なければ、コマンドラインでDockerHubにログインします。
      docker login
    5. ログイン出来たら、先ほどビルドしたイメージをアップロードします。容量によっては時間がかかるので気長に待ちましょう。
      docker push akira345/php7app-dev
    6. アップロードが終わりましたら、DockerHubのページに反映されます。
      docker-hub06.jpg
  9. アップロードが終わりましたら、別PCかイメージを削除して、動かしてみましょう。
    DockerHubからPullされて動くはずです。
    docker run --rm -v `pwd`/app:/var/www/web -p 8080:80 -e DOCUMENT_ROOT=/var/www/web/public_html --name example akira345/php7app-dev
  10. GitHubまたはBitBucketと連携している場合、Readme.mdがDockerHubのページに反映されます。
    自動テストの動作確認も兼ねて、GitHubへPushしてみます。
    docker-hub07.jpg
    早速ペンディング地獄っぽいですが、ローカルでBuildが成功しているのを確認しているので、気長に待ちましょう。
    自分の場合、ビルド自体は2分で終わっていますが、キューに19分溜まってますね・・・
    docker-hub08.jpg
    なお、調子がいい時は5分くらいで終わります。
    docker-hub09.jpg
    ちゃんと反映されると、見慣れた画面になりますね~
    docker-hub10.jpg

Counter: 35, today: 1, yesterday: 0

このページの参照回数は、35です。