このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Dockerコンテナからイメージを作る流れ➁:作成・公開

Dockerコンテナからイメージを作る流れ②:作成・公開
前回の記事では、Ubuntuのイメージを取得してコンテナを作成・実行し、ファイルを操作するところまで解説しました。今回はその続きとして、 ④コンテナからイメージを作成する → ⑤イメージを公開する までの流れを見ていきます。

全体の流れ
コンテナからDockerイメージを作る流れは、下図のとおりです。
- イメージの取得
- コンテナの作成・実行
- コンテナの操作
- イメージの作成
- イメージの公開
今回は、④⑤のステップを順に試していきます。

④ イメージの作成
コンテナで行った変更を新しいイメージとして保存するには、docker container commit コマンドを使います。これにより、今動いているコンテナの状態をスナップショットのようにイメージ化できます。
コマンドの書式
docker container commit -a "<作者名>" <コンテナ名> <ユーザー名>/<イメージ名>:<タグ>実行例
docker container commit -a "infralinux" ubuntu-smp infralinux1/ubuntu-smp-img:1.0このコマンドでは、
-a "infralinux": イメージの作者情報を指定ubuntu-smp: 変更を保存する元コンテナ名infralinux1/ubuntu-smp-img:1.0: 作成される新しいイメージ名とタグ
コマンドの詳細解説
| docker container commit | -a "infralinux" | ubuntu-smp | infralinux1 | / | ubuntu-smp-img | :1.0 |
| コンテナからイメージを作成する。 | Dockerイメージ作者の情報を設定する。 | コンテナ名 | ユーザ名 | 区切り | イメージ名 | タグ |
オプション解説
| オプション | 説明 |
|---|---|
| -a | 作者情報を設定する。 |
| -m | コミット時にコメント(変更内容など)を付ける。 |
| (指定なし) | コンテナの状態をそのまま保存する。 |
出力例
PS C:\Users\joeac> docker container commit -a "infralinux" ubuntu-smp infralinux1/ubuntu-smp-img:1.0
sha256:2fce6a3fdb836b993427e080a4d1499778a059ad8acae5ea70326fdcfeb35286実行後の確認
docker image ls出力例
PS C:\Users\joeac> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
infralinux1/ubuntu-smp-img 1.0 2fce6a3fdb83 22 seconds ago 117MB
infralinux1/ubuntu-smp 1.0 83e81b62b3c4 13 days ago 117MB
ubuntu-echo latest 83e81b62b3c4 13 days ago 117MB
ubuntu latest 353675e2a41b 13 days ago 117MBこれで「ubuntu-smp」コンテナから新しいイメージ「infralinux1/ubuntu-smp-img:1.0」が作成されました。
⑤ イメージの公開
作成したイメージを他の人と共有するには、Docker Hubにアップロードします。
Docker Hubへのログイン
Docker Desktopでサインインしていない場合は、以下を実行してログインします。
docker loginユーザー名とパスワードを入力して認証します。
出力例
PS C:\Users\joeac> docker login
Authenticating with existing credentials... [Username: infralinux1]
i Info → To login with a different account, run 'docker logout' followed by 'docker login'
Login Succeededイメージのアップロード
アップロードには docker image push コマンドを使用します。
コマンドの書式
docker image push <ユーザー名>/<イメージ名>:<タグ>実行例
docker image push infralinux1/ubuntu-smp-img:1.0出力例
PS C:\Users\joeac> docker image push infralinux1/ubuntu-smp-img:1.0
The push refers to repository [docker.io/infralinux1/ubuntu-smp-img]
953cdd413371: Mounted from infralinux1/ubuntu-smp
e6426ea163cd: Pushed
1.0: digest: sha256:2fce6a3fdb836b993427e080a4d1499778a059ad8acae5ea70326fdcfeb35286 size: 746これでDocker Hub上に「ubuntu-smp-img」がアップロードされ、誰でもpullできるようになります。
Docker Hubリポジトリにあるイメージの削除
Docker Hubのリポジトリにあるイメージを削除するには、Docker Hubのウェブサイトにアクセスし、リポジトリの「Tags」ページから削除対象のイメージを選択後、「Action」メニューから「Delete」をクリックします。
Docker Hubウェブサイトから削除する方法
- Docker Hubにアクセスする
ブラウザでDocker Hubを開き、サインインします。 - リポジトリを選択する
削除したいイメージが含まれるリポジトリに移動します。 - イメージタグを選択する
「Tags」タブをクリックし、削除したいイメージのタグを選択します。 - 「Delete」を選択する
画面右上部の「Delete」をクリックします。 - 確認する
表示される確認画面で再度「Delete」をクリックして削除を完了します。
まとめ
ここまでで、Ubuntuのコンテナに変更を加え、それを新しいイメージとして保存し、さらにDocker Hubに公開する手順を学びました。
docker container commitでコンテナからイメージを作成docker image pushでDocker Hubに公開
これでチームメンバーや他の開発者と同じ環境を簡単に共有できるようになります。
