【Dockerチュートリアル】困った…docker pushできない:Error – denied

【Dockerチュートリアル】困った...docker pushできない:Error - denied

 

【動画で解説】Docker HubにDocker ImageをPushする方法
– docker push tutorial for beginners

 

 


視聴時間:9分39秒

 




 

【動画の内容】

0:00 はじめに:Dockerの使い方が分からず
1:04 Dockerfileの作成
2:35 Docker Imageの作成
3:50 3ステップ:docker pushの手順解説
4:00 ステップ1:Docker Hubにサインインしてリポジトリ作成
5:37 ステップ2:Docker Desktopでタグ名をDocker Hubのリポジトリと同じにする
6:42 ステップ3:Docker Desktopにサインインした状態でアップロード
8:33 おわりに

 

Dockerへのリンク

 

 

Docker Hub:クラウド上でDocker Imageが配布されています
Docker Hub

 

Docker Desktop:ローカル環境でDocker Imageなどを作成できます
Docker Desktop

 

 

Dockerエラー
:denied: requested access to the resource is denied

 

 

「denied: requested access to the resource is denied」
(要求されたアクセスが拒否されました)

Docker ImageをDocker Hubに登録する方法が分からずに右往左往している際に遭遇したエラーです。
調べながらDocker Desktopで、DockerimageからDocker Imageを作成することができたのですが、Docker Hubへアップロードする手順が分からずに時間だけが過ぎていきました。

今回は、あまりにもDocker Hubへアップロードする手順につまずきましたので、Docker初学者の方の情報収集の利便性を考え、Docker DesktopでDockerimageからDocker Image(Dockerコンテナイメージ)を作成し、Docker HubへDocker ImageをPush(プッシュ)する方法をまとめておくことにしました。

 

 

【実行コード】Dockerfileの作成〜Docker Imageの作成

 

 

以下は

・Docker Desktop

で実行していきます。

 

フォルダの作成

実行コード:

mkdir docker-demo

*「docker-demo」というフォルダを作成する例です。

 

カレントディレクトリ(作業フォルダ)の指定

実行コード:

cd docker-demo

*「docker-demo」というフォルダをカレントディレクトリに指定する例です。

 

Dockerfileの作成

実行コード:

touch Dockerfile

フォルダ名で検索し、Dockerfileをテキストエディタで編集します。

 

Dockerfileに指示を記述

記述コード:

# Linux Ubuntu 22.04をインストール
FROM ubuntu:22.04

# aptをアップデート
RUN apt update

# Python 3.10系をインストール
RUN apt install -y python3.10
RUN apt install -y python3-pip

 

Docker Imageの作成

実行コード:

docker build -t testimage .

*「testimage」という名前のDocker Imageを作成する例です。

 

Docker Imageを表示

実行コード:

docker images

出力結果:

REPOSITORY TAG   IMAGE ID     CREATED    SIZE
testimage latest d3bd3a0c7f3d  30 minutes ago 483MB

 

Docker Imageをアップロード(失敗例)

実行コード:

docker push testimage

出力結果:

Using default tag: latest
The push refers to repository [docker.to/library/testimage]
c2153678c34: Preparing
15e8d43acf99: Preparing
3bf54ad9726d: Preparing
25730d81582: Preparing
denied: requested access to the resource is denied

 

 

【3ステップ】docker pushの手順解説

 

 

【ステップ1】
Docker Hubにログイン・サインインしリポジトリを作成。

作成したリポジトリ名:
rehabc/test-image
*注:名前によっては「twirp error invalid_argument: arguments are invalid」というエラーが出る場合もありましたが、時間差でリポジトリができるようです

 

【ステップ2】
Docker Desktopでタグ名(リポジトリ名)を①で作成したリポジトリ「rehabc/test-image」(ユーザー名/リポジトリ名)と同じ名前にする
*「rehabc/test-image:latest」などと入力するとタグのバージョンも指定可能

Docker Imageの名前を変更:

実行コード:

docker tag testimage rehabc/test-image

* docker tag [既存Dockerイメージ名orイメージID-小文字] [付与するDockerイメージ名 – 小文字]

出力結果:

REPOSITORY testimage rehabc/rvc-d
REPOSITORY      TAG   IMAGE ID     CREATED    SIZE
rehabc/test-image latest d3bd3a0c7f3d  30 minutes ago  483MB
testimage      latest d3bd3a0c7f3d  30 minutes ago  483MB

 

【ステップ3】
Docker Desktopでログイン・サインインした状態でアップロードを実行。

Docker Imageをアップロード

実行コード:

docker push rehabc/test-image

出力結果:

Using default tag: latest
The push refers to repository [docker.to/library/testimage]
c2153678c34: pushed
15e8d43acf99: pushed
3bf54ad9726d: pushed
25730d81582: Mounted from library/ubuntu
latest: digest: sha256:8f09c6d0fefSb7d36ff98c7034a7bdefd74039c8a58dbf193f38c8da14c7be 
size:1166

 

 

おわりに

 

 

今回は、どのようにDocker DesktopとDocker Hubが連携しているのか?をわかっていなかったので、アップロードに成功するまでにかなりの時間がかかってしまいました。
このページの一連の情報が、自分と同じような、Docker初心者の方が、docker pushを成功させるきっかけになることがありましたら幸いです。

 

 

by 子供プログラマー | プログラミング入門ウェブ教室

 

【ERROR Codes】- プログラミング学習エラーコード集(一覧)

Pythonの詳細バージョン指定でもつまずきましたので手順をまとめておきました。
【Dockerチュートリアル】困った…Pythonのバージョン指定ができない

 

日本人のための人工知能プログラマー入門講座(機械学習)