コンテナDockerCommitを介してイメージを送信し、DockerPushでイメージをプッシュします。

コンテナDockerCommitを介してイメージを送信し、DockerPushでイメージをプッシュします。

ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを Docker ハブにプッシュして、インターネット上でダウンロードして使用することができます。

イメージを表示する [root@docker-test1 ~]# docker images
リポジトリ タグ イメージ ID 作成 サイズ
docker.io/ubuntu 16.04 7aa3602ab41e 5 週間前 115 MB
 
myubuntu という名前のコンテナを作成します [root@docker-test1 ~]# docker run -ti --name myubuntu -d docker.io/ubuntu
[root@docker-test1 ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
651a8541a47d docker.io/ubuntu "/bin/bash" 37 秒前 36 秒前 myubuntu
 
 docker commit : コンテナから新しいイメージを作成します。
# docker commit [オプション] コンテナ [リポジトリ[:タグ]]
-a: 提出されたミラー作成者;
-c: Dockerfile の指示を使用してイメージを作成します。
-m: 送信時の説明テキスト。
-p: コミット時にコンテナを一時停止します。
 
この myubuntu コンテナ [root@docker-test1 ~] に基づくイメージを送信します # docker commit -a "wangshibo" -m "this is test" 651a8541a47d myubuntu:v1
sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4d
 
イメージを再度確認すると、イメージ myubuntu:v1 がローカルの [root@docker-test1 ~]# docker images に送信されていることがわかります。
リポジトリ タグ イメージ ID 作成 サイズ
myubuntu v1 6ce4aedd12cd 59 秒前 84.1 MB
docker.io/ubuntu 16.04 7aa3602ab41e 5 週間前 115 MB
 
mybuntu:v1 イメージを docker hub リポジトリにプッシュします # docker push [OPTIONS] NAME[:TAG]
オプションの説明:
--disable-content-trust: イメージ検証を無視します。デフォルトで有効になっています。まず、docker hub にログインします (ユーザー名: wangshibo パスワード: *******)
[root@docker-test1 ~]# dockerログイン
Docker ID でログインして、Docker Hub からイメージをプッシュおよびプルします。Docker ID をお持ちでない場合は、https://hub.docker.com にアクセスして作成してください。
ユーザー名 (wangshibo): wangshibo
パスワード:
ログインに成功しました
 
[root@docker-test1 ~]# docker push wangshibo/myubuntu:v1
プッシュはリポジトリ [docker.io/wangshibo/myubuntu] を参照します
タグ docker.io/wangshibo/myubuntu のイメージがローカルに存在しません
 
ここで、ubuntu:v1イメージの名前を変更し、名前の前に独自のDockerハブのDocker IDを追加する必要があります。つまり、wangshiboです。
 
[root@docker-test1 ~]# docker タグ 6ce4aedd12cd wangshibo/myubuntu:v1
[root@docker-test1 ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
myubuntu v1 6ce4aedd12cd 6分前 84.1 MB
wangshibo/myubuntu v1 6ce4aedd12cd 6分前 84.1 MB
docker.io/ubuntu 16.04 7aa3602ab41e 5 週間前 115 MB
 
もう一度プッシュします (注: 以下の v1 タグは省略できます。デフォルトは最新です)。プッシュ操作時間は少し長くなりますので、しばらくお待ちください〜
[root@docker-test1 ~]# docker push wangshibo/myubuntu:v1           
プッシュはリポジトリ [docker.io/wangshibo/myubuntu] を参照します
b5948ba9486d: プッシュ
8d7ea83e3c62: library/ubuntu からマウント
6a061ee02432: library/ubuntu からマウント
f73b2816c52a: library/ubuntu からマウントされました
6267b420796f: library/ubuntu からマウント
a30b835850bf: library/ubuntu からマウント
v1: ダイジェスト: sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d サイズ: 1564
 
最後に、Docker Hub(https://hub.docker.com/)にログインします。
ログインすると、上でプッシュしたイメージ wangshibo/myubuntu:v1 がリポジトリに表示されます。これは外部イメージであり、インターネットからダウンロードできます。
このイメージのダウンロードコマンドはDocker hubで確認できます(ダウンロード時にはタグに従う必要があることに注意してください。最新のデフォルトタグの場合は省略できます)
このイメージはDockerハブで直接削除することもできます(リポジトリ-イメージ-設定-削除)
 
たとえば、このイメージを別のサーバー [root@kevin-test ~] にダウンロードします# docker pull wangshibo/myubuntu
リポジトリ wangshibo/myubuntu をプルします
リポジトリが見つかりません
 
タグ [root@kevin-test ~] を最新の状態に保つ必要があります # docker pull wangshibo/myubuntu:v1
v1: wangshibo/myubuntu からプル
68e2a091ef24: プル完了
8f9dd35f6299: プル完了
a81a6171600b: プル完了
a211a2bc7010: プル完了
9e71a0b4f83a: プル完了
0cf75bb335aa: プル完了
c393a882769e: プル完了
ダイジェスト: sha256:845fa3dcc9d0de1b9c701e1009918995da35a29012015f6c297a05edc489e018
ステータス: wangshibo/myubuntu:v1 の新しいイメージをダウンロードしました
[root@kevin-test ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 仮想サイズ
wangshibo/myubuntu v1 c393a882769e 12 分前 84.11 MB
 
このマシン上のこのイメージを削除します [root@docker-test1 ~]# docker images
リポジトリ タグ イメージ ID 作成 サイズ
myubuntu v1 6ce4aedd12cd 15分前 84.1 MB
wangshibo/myubuntu v1 6ce4aedd12cd 15分前 84.1 MB
docker.io/ubuntu 16.04 7aa3602ab41e 5 週間前 115 MB
 
上記では6ce4aedd12cdのイメージIDが2つあることに注意してください。この時点ではイメージIDを直接使用して削除することはできません [root@docker-test1 ~]# docker rmi 6ce4aedd12cd
デーモンからのエラー応答: 競合: 6ce4aedd12cd を削除できません (強制する必要があります) - イメージが複数のリポジトリで参照されています
 
まず、docker タグの名前を変更する前にイメージを削除し、イメージ名を使用して削除する必要があります。 (一般的に、docker タグ イメージの名前を変更した後は、名前を変更する前にイメージを削除するのが最適です)
[root@docker-test1 ~]# docker rmi myubuntu:v1
タグなし: myubuntu:v1
タグなし: wangshibo/myubuntu@sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d
 
[root@docker-test1 ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
wangshibo/myubuntu v1 6ce4aedd12cd 15分前 84.1 MB
docker.io/ubuntu 16.04 7aa3602ab41e 5 週間前 115 MB
 
この時点で、イメージID [root@docker-test1 ~]# docker rmi 6ce4aedd12cd を削除できます。
タグなし: wangshibo/myubuntu:v1
削除済み: sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4d
削除済み: sha256:0ddeb6a16badd042914c2e72b9ef0331550c1cdcc4bdc6650a90cd9f57f1501b
[root@docker-test1 ~]# docker イメージ         
リポジトリ タグ イメージ ID 作成 サイズ
docker.io/ubuntu 16.04 7aa3602ab41e 5 週間前 115 MB

画像削除失敗例

[root@docker-test1 ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
[root@docker-test1 ~]# docker ps -a
コンテナID イメージ コマンド 作成ステータス ポート名
 
docker の nginx イメージを削除したいのですが、削除できないようです。-f を追加しても削除できません。エラー: そのようなイメージはありません というメッセージが繰り返し表示されます。
ついにファイルを直接削除する方法を見つけました!
 
[root@docker-test1 ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
nginx 最新 62f816a209e6 7日前 109MB
 
[root@docker-test1 ~]# docker rmi nginx
エラー: そのようなイメージはありません: nginx
 
[root@docker-test1 ~]# docker rmi 62f816a209e6
エラー: そのような画像はありません: 62f816a209e6
 
[root@docker-test1 ~]# docker rmi 62f816a209e6 -f
エラー: そのような画像はありません: 62f816a209e6
 
上記の通り、nginx イメージをまったく削除できません!!!!
 
解決:
[root@docker-test1 ~]# systemctl dockerを停止します
[root@docker-test1 ~]# rm -rf /var/lib/docker
rm: '/var/lib/docker/containers' を削除できません: デバイスまたはリソースがビジーです
 
削除できない理由: コンテナが作成されたとき、対応するディレクトリがマウントされ、アンインストールされていないため、デバイスまたはリソースがビジー状態です。
 
解決策: マウントされたディレクトリを見つけてアンインストールします [root@docker-test1 ~]# cat /proc/mounts | grep "docker"
/dev/mapper/centos-root /var/lib/docker/containers xfs rw、relatime、attr2、inode64、noquota 0 0
proc /run/docker/netns/default proc rw、nosuid、nodev、noexec、relatime 0 0
proc /run/docker/netns/a0626c54fd03 proc rw、nosuid、nodev、noexec、relatime 0 0
proc /run/docker/netns/b18072de4224 proc rw、nosuid、nodev、noexec、relatime 0 0
proc /run/docker/netns/b5298f643455 proc rw、nosuid、nodev、noexec、relatime 0 0
proc /run/docker/netns/9f5e97637c98 proc rw、nosuid、nodev、noexec、relatime 0 0
 
[root@docker-test1 ~]# /var/lib/docker/containers をアンマウントします
[root@docker-test1 ~]# rm -rf /var/lib/docker
 
[root@docker-test1 ~]# systemctl dockerを起動します
 
もう一度確認すると、そのようなイメージはありません [root@docker-test1 ~]# docker images
リポジトリ タグ イメージ ID 作成 サイズ

以上がDockerCommitでイメージを送信し、DockerPushでイメージをプッシュする手順です。コンテナの送信とイメージのプッシュの詳細については、123WORDPRESS.COMの他の関連記事もご覧ください。

以下もご興味があるかもしれません:
  • Dockerイメージの作成Dockerfileとコミット操作
  • Dockerイメージ送信コマンドcommitの動作原理と使い方の詳細な説明
  • Docker 学習ノート: コンテナをイメージにコミットする方法
  • 既存のイメージを変更する Docker の詳細な説明 (コミット)
  • コミットコマンドを使ってイメージを作成するDocker学習の詳細な説明
  • Dockerイメージコミット操作の例と機能

<<:  史上最もクリエイティブな404ページのデザインは、ウェブサイトのユーザーエクスペリエンスを効果的に向上させます

>>:  MySQLインデックスマージの使い方

推薦する

Webデザインチュートリアル(8):Webページの階層と空間デザイン

<br />前回の記事:Webデザイン講座(7):Webページ制作の効率化1:必要な小言...

QT が MYSQL データベースに接続するための詳細な手順

最初のステップは、対応するデータベースモジュール(sql)をプロジェクトファイル( .pro )に追...

MySQLデータベースの操作とメンテナンスのデータ復旧方法

これまでの 3 つの記事では、論理バックアップと物理バックアップを含む、MySQL データベースの一...

MySQL マスターとスレーブの不整合とその解決策の詳細な説明

1. MySQL マスタースレーブ非同期1.1 ネットワーク遅延MySQLのマスタースレーブレプリケ...

Javascript サンプル プロジェクトでの虫眼鏡効果の実装プロセス

目次序文事例: JD.com の虫眼鏡効果の模倣オフセットシリーズクライアントシリーズスクロールシリ...

MYSQLデータベーステーブル構造の最適化方法の詳細な説明

この記事では、例を使用して、MYSQL データベース テーブル構造を最適化する方法を説明します。ご参...

W3C チュートリアル (14): W3C RDF および OWL アクティビティ

RDF と OWL は、2 つの重要なセマンティック ウェブ テクノロジーです。 RDF と OWL...

CocosCreatorでスワイプした位置にテクスチャを表示する方法

目次1. プロジェクト要件2. 文書の内容3. プロジェクト例4. プロジェクトコード1. プロジェ...

Vueのアイデアを使ってストレージをカプセル化する方法

目次背景関数目的アイデアの源成し遂げるセット得るプロパティの削除拡張機能を禁止するもっている要約する...

Sparkの紹介とHadoopとの比較

目次1. SparkとHadoopの比較1.1 Haoopの欠点1.2 Hadoop MR に対する...

vue.jsは画像のURLに従って画像をダウンロードします

最近、フロントエンドの vue.js ドッキング機能モジュールに取り組んでいたとき、画像をダウンロー...

Win7 システムでの MySQL 5.7.11 の詳細なインストール チュートリアル

オペレーティング システム: Win7 64 ビット Ultimate Edition MySQL ...

MySQL 8.0.23のルートパスワードをリセットするための最適なソリューション

この方法は2021年2月7日に編集されました。私が使用しているバージョンは8.0.23です。事件の原...

まだ*を選択しますか?

アプリケーションが牛のように遅い理由は数多くあります。ネットワーク、システム アーキテクチャ、または...

一般的なMySQLコマンドの概要

mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...