Docker Hub にpushする方法

localからDocker Hubにimageをpushしようとしたらエラーが出た.
エラー内容は次の通り.

denied: requested access to the resource is denied

なんとかこれを解決したい.

概要は次の通り.

参考

基本的にはこの公式docに従って作業を進める.

動作環境

  • windows10 Home x64
  • VirtualBox 5.1.26
  • vagrant 1.9.3
  • ubuntu 16.04
  • Docker 17.06.1-ce

ホストマシンとしてwinを使用.
VirtualBox + Vagrant で仮想環境を構築し,
ゲストマシンosとして ubuntu を使用.

ubuntu上にDockerをinst.し, そこでcentosイメージを使用.

手順

概要は次の通り.

  1. Docker Hub アカウント作成
  2. ログイン後, Create Repository
  3. ローカルで作成したイメージをDocker Hubへpush

以下, 詳細.

Docker Hub アカウント作成

トップページの Sign up から登録する.

ログイン後, Create Repository

画面上にはフォームに何を入力すればよいのかが書いてある.

  1. Choose a namespace (Required)
  2. Add a repository name (Required)
  3. Add a short description
  4. Add markdown to the full description field
  5. Set it to be a private or public repository

私はこんな感じで入力した↓

全部入力出来たら Create ボタンをクリック.

ここまでが事前準備.
これでようやく push できる.

After you hit the “Create” button, you then need to docker push images to that Hub based repository.

引用: Creating a new repository on Docker Hub | docs.docker.com

ローカルで作成したイメージをDocker Hubへpush

pushするにはimageの名前の付け方に注意.

In order to push a repository to the Docker Hub,
you need to name your local image using your Docker Hub username,
and the repository name that you created in the previous step.

引用: Pushing a repository image to Docker Hub | docs.docker.com

つまりimageは次の命名規則に従ってね ってこと.

  • ユーザ名/リポジトリ名:タグ

Docker上では ユーザ名, リポジトリ名 は次のように定義されている.

  • ユーザ名 => namespace
  • リポジトリ名 => ripository name

混乱しやすいので注意.

namespaceはDocker Hub登録時に入力したユーザIDと一緒.
リポジトリ名はさっき Create Repository で作成したもの.

タグはあってもなくてもok.
ない場合は latest になる.

それでも命名規則が解らない場合は, DockerHubでさきほど作ったリポジトリのページに行けば解決する.

push

私の環境には既にimageがある.
image名を書き換えるために次のコマンドを実行する.

  • $ docker tag ローカルにあるimage名 ユーザ名/リポジトリ名:タグ

いざ, push.

  • $ sudo docker push ユーザ名/リポジトリ名

実行結果

もしリポジトリがpublicなら docker search で見つかるはず.
私は private で作成したので, 直接Docker Hubにアクセスしてpush出来ていることを確認した.

今回は以上.

  • このエントリーをはてなブックマークに追加

この記事が気に入ったら
いいね!しよう

トップへ戻る