コンテナ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インデックスマージの使い方

推薦する

nginx ロケーション優先度の詳細な説明

場所表現タイプ~ は大文字と小文字を区別して通常の一致を実行することを示します~*は大文字と小文字を...

スライドによるページめくり効果とクリックイベント問題をモバイル端末上で実装する

前述のこの記事はとても短いです〜主な目的は、モバイル端末上のクリックと js イベントのメカニズムに...

JSONP クロスドメインシミュレーション Baidu 検索

目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...

Linux システムでキャッシュをクリアする方法の概要

1) キャッシュメカニズムの紹介Linux システムでは、ファイルシステムのパフォーマンスを向上させ...

Google 翻訳ツール: 多言語ウェブサイトを素早く実装

Google Chinaは、ウェブサイトやブログを素早く簡単に多言語化できる翻訳ツールをリリースした...

Vueプラグインの書き方を説明する記事

目次プラグインとはプラグインの作成プラグインの使用要約するプラグインとはVue フレームワークでは、...

CSSアニメーションを途中で止めて姿勢を維持する方法

序文かつて、難しい問題に遭遇しました。タワークレーンからスイングハウスを落下させる必要がありましたが...

MySQL ストレステストツールの使い方

1. MySQL 独自のストレステストツール - Mysqlslap mysqlslap は、mys...

docker-compose を使用して Apollo カスタム環境をデプロイする詳細なチュートリアル

目次アポロ コンフィギュレーション センターとは何ですか?アポロの特徴クライアントアーキテクチャアー...

Linux システムの最適化 (カーネルの最適化) に関するいくつかの提案

スワップを無効にするサーバーがデータベース サービスまたはメッセージ ミドルウェア サービスを実行し...

Elimination の JavaScript ソースコード

ゲームのソースコードのダウンロードアドレスを取得するためのJavaScript:クリックしてソースコ...

VMwareがモジュールディスクを早期に開けない場合の解決策の詳細な説明

VMWare (Virtual Machine ware) は、「仮想 PC」ソフトウェア会社です。...

Vue ソング プログレス バーのサンプル コード

なお、これはvue-cliで作成したプロジェクトではありません。vue.jsを参照して記述したHTM...

Vue の基本 MVVM、テンプレート構文、データバインディング

目次1. Vueの概要Vue公式サイトMVVM アーキテクチャ パターンVue の紹介2. Vueを...

mysql57サービスが突然消えた問題をすぐに解決する

1つ、 G:\MySQL\MySQL Server 5.7\bin> mysqld --ini...