Closed4

自作のDockerImageをDockerHubにpushしてみる

ranran

前提条件

  • DockerHubでリモートリポジトリ作成済み
  • ローカルでdocker build済み

実行環境

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04 LTS
Release:        24.04
Codename:       noble
$ docker -v
Docker version 27.1.1, build 6312585
ranran

docker cliからdockerHubにログイン

$ docker login -u ユーザー名 -p パスワード
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-stores

Login Succeeded

警告! CLI 経由で --password を使用するのは安全ではありません。--password-stdin を使用してください。
警告! パスワードは暗号化されずに /home/ubuntu/.docker/config.json に保存されます。
この警告を削除するには、認証ヘルパーを構成してください。参照:
https://docs.docker.com/engine/reference/commandline/login/#credential-stores

ログインに成功しました

パスワードがシェルの履歴に残るから危ないよ~ということらしい
とりあえずそのまま進める

ranran

ローカルのimageとDockerHubのリモートリポジトリを紐づける

docker tag <ローカルのimageID> <アカウント名>/<リモートリポジトリ名>:<タグ名

例えばこんな感じ↓

ローカルにある ID 「0e5574283393」イメージを、「fedora」リポジトリの「version 1.0」とタグ付けします。

docker tag 0e5574283393 fedora/httpd:version1.0

https://docs.docker.jp/engine/reference/commandline/tag.html#docker-stop-examples

ローカルのimageIDはdocker imagesのIMAGE IDからとってくる

$ docker images
REPOSITORY      TAG          IMAGE ID       CREATED          SIZE
ranran

DockerHubにpush

docker push <アカウント名>/<リモートリポジトリ名>:<タグ名>

なんかうごきだした~

$ docker push hoge/fuga:test
The push refers to repository [docker.io/hoge/fuga]
02419b795649: Pushed 
9ab0306716a1: Pushed 
df46f78d1e9a: Pushed 
...

終わったみたいなので確認

$ docker image ls
REPOSITORY        TAG          IMAGE ID       CREATED          SIZE
hoge/fuga           test         6578178b9f63   38 minutes ago   913MB

デキタ!

このスクラップは3ヶ月前にクローズされました