【動画で解説】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を成功させるきっかけになることがありましたら幸いです。
:【ERROR Codes】- プログラミング学習エラーコード集(一覧)
Pythonの詳細バージョン指定でもつまずきましたので手順をまとめておきました。
– 【Dockerチュートリアル】困った…Pythonのバージョン指定ができない