DockerHubに公開する
Last-modified: Fri, 08 Mar 2019 20:49:15 JST (2138d)
Top > DockerHubに公開する
DockerHubへ作成したコンテナを公開してみました。
前提
DocukerHubのアカウントを持っていること。
登録するコンテナを作成
登録するコンテナを作成します。githubかbitbucketで管理しておくと、DockerHubの自動ビルドが使えます。
必須ではないので、ローカルでコチコチ作っても構いません。
ここでは、PHP7開発用コンテナを作成しました。
DockerHubへ登録
- DockerHubへログインします。
- ログインすると、リポジトリを作るか?と聞いてくるので、「Create a Repository」をクリックします。
- リポジトリを作成します。適当なイメージ名と説明を入力します。DockerHubの無料アカウントではプライベートリポジトリが1つだけ持てます。ここではパブリックリポジトリにします。
- 下にスクロールすると、GitHubやBitBucketとつなぐオプションが選べます。自分の環境はGitHubと連携させていますので、GitHub連携が有効になっています。なくても問題ないですが、更新時手動でアップロードしないといけません。
- GitHubやBitBucket連携している場合、自動ビルドの設定を行います。Buildタブをクリックし、Configure Automated Buildsボタンをクリックします。
- 自動ビルドの設定をします。チェックアウトするGitHubのリポジトリの指定を行います。オプションのREPOSITORY LINKSは、説明によるとDockerfileのFromで使用しているベースイメージが更新されたタイミングで自動ビルドが走るようです。
- 下にスクロールします。ビルドを走らせるトリガの設定です。任意のブランチ、タグをトリガにすることができます。
設定についてはこの辺りが参考になるかと思います。
ここではデフォルトのままmasterブランチにpushしたらlatestを更新するようにします。
ここで、「Save and Build」ボタンをクリックすると、即座にビルドが走ります。が、DockerHubの自動ビルドは運が悪いと2~30分くらい待たされるPending地獄だったりするので、ここでは「Save」し、いったんイメージを手動で上げます。 - GitHubやBitBucket連携をしていない、または手動で上げる場合は、以下の手順になります。
- Dockerfileをまずビルドします。この時タグ名を「DockerHubアカウント名/リポジトリ名」とします。
docker build --tag=akira345/php7app-dev .
- ビルド出来たら、「DockerHubアカウント名/リポジトリ名」でイメージができていることを確認します。
docker images
- 最終確認をしましょう。
docker run --rm ・・・・・・
- 問題なければ、コマンドラインでDockerHubにログインします。
docker login
- ログイン出来たら、先ほどビルドしたイメージをアップロードします。容量によっては時間がかかるので気長に待ちましょう。
docker push akira345/php7app-dev
- アップロードが終わりましたら、DockerHubのページに反映されます。
- Dockerfileをまずビルドします。この時タグ名を「DockerHubアカウント名/リポジトリ名」とします。
- アップロードが終わりましたら、別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
- GitHubまたはBitBucketと連携している場合、Readme.mdがDockerHubのページに反映されます。
自動テストの動作確認も兼ねて、GitHubへPushしてみます。 早速ペンディング地獄っぽいですが、ローカルでBuildが成功しているのを確認しているので、気長に待ちましょう。
自分の場合、ビルド自体は2分で終わっていますが、キューに19分溜まってますね・・・ なお、調子がいい時は5分くらいで終わります。 ちゃんと反映されると、見慣れた画面になりますね~
Counter: 917,
today: 1,
yesterday: 1
このページの参照回数は、917です。