docker loginしてもdenyされる
新卒3ヶ月目が独学でDocker入門してみたら、案の定つまづいたのでここに備忘録として書き残しておきます。イメージpullしてきて、コンテナ作って、ってところまではできたけど
$ docker push イメージ(ユーザー名/任意の名前)
# => denied: requested access to the resource is denied
「アクセスが拒否されたよー!」と怒られた。いやだ。
色々調べてみても、どこのサイトにもdocker login
すればpushできるよ、としか書いていない。
いやイメージpullしてくる前にloginしたはずなんだけど何かしらのやーつでセッション切れたのか、、?いやまさかそんなことないよな〜と思いつつも渋々やってみるが、やはり結果は変わらず。
てかそもそもイメージ名ってユーザー名/任意の名前だから、push先であるDockerHubのユーザー名と一致してないとダメなのかもと思い、イメージのユーザー名部分をDockerHubのユーザー名と一致させてみることに。
やはりユーザー名が問題だった!
手順としては、間違った名前のイメージから任意のコンテナを作成し、そのコンテナから新しいイメージを作るという二段戦法。1.まず間違った名前のイメージから、tmpコンテナを作成。
$ docker run -d --name tmp false-username/任意の名前
2.次にcommitして新しくpush対象のイメージを作成。
$ docker commit tmp true-username/任意の名前
3.push!!!
$ docker push true-username/任意の名前
↓
Pushed
と表示され、なんとかpushに成功。
なんだこんな簡単なことか、、、今日も一つ勉強になりましたとさ。