Dockerイメージをプライベートリポジトリにアップロードする方法の例

Dockerイメージをプライベートリポジトリにアップロードする方法の例

イメージは、GitHub と同様に Docker パブリック リポジトリに直接簡単にプッシュできますが、開発中にイメージ ファイルを公開したくない場合がよくあります。この場合、GitLab と同様に Docker プライベート リポジトリを構築する必要があります。

前の記事でイメージをビルドした後、イメージを保存するためのプライベート イメージ リポジトリをデプロイできます。

プライベートレジストリを開始する

プライベートリポジトリの開始も非常に簡単です。サーバー上でコマンドを実行します。

次のようにコードをコピーします
docker run -d -p 5000:5000 --name="docker-registry" --restart=always -v /root/docker/registry/:/var/lib/registry/ レジストリ

つまり、レジストリイメージによって構築されたコンテナがバックグラウンドで起動され、 docker-registryという名前が付けられ、ポート番号が5000から5000にマッピングされます。

--restart=alwaysコンテナが何らかの理由で停止した場合、終了コードに関係なく自動的に再起動することを意味します。 alwaysに加えて、 on-failureもあります。これは、終了コードが 0 でない場合にのみ再起動することを意味し、再起動回数パラメータを受け入れます: --restart=on-failture:5

-v 、ホストの/root/docker/registry/ディレクトリがコンテナの/var/lib/registry/ディレクトリにマウントされることを指定します。この方法では、コンテナに入らずに、ホストマシン上のコンテナ内の目的のディレクトリにアクセスできます。

なぜ/var/lib/registry/のでしょうか?
デフォルトでは、リポジトリはコンテナの/var/lib/registry/dockerディレクトリにイメージやその他の情報を保存します。このディレクトリに入ると、アップロードされたイメージ情報を表示できます。

runコマンドを正常に実行した後、 docker psを使用してレジストリ サービスが開始されたことを確認します。

画像をアップロード

プライベート リポジトリにイメージをアップロードするには、イメージ タグにリポジトリ アドレスを追加する必要があります。

docker タグ express-app 111.111.111.111:5000/sunhengzhe/express-app:v1

他のイメージとの競合を避けるために、 sunhengzheなどの名前空間を追加することができます。また、イメージにv1などのタグを付けるのが最適です。

リポジトリアドレスにはプロトコル部分は含まれないことに注意してください。Docker のデフォルトのセキュリティポリシーでは、リポジトリがhttpsをサポートしている必要があります。サーバーが http 伝送しか使用できない場合、直接アップロードは失敗します。Docker クライアントの設定ファイルで宣言する必要があります。

Macの設定

変更後はApply & Restart必要があります

CentOS システム

/etc/docker/daemon.jsonファイルに次の内容を記述します。

{
 「レジストリミラー」: [
  「https://registry.docker-cn.com」
 ]、
 「安全でないレジストリ」: [
  "[プライベート倉庫 IP:ポート]"
 ]
}

次にdockerを再起動します

systemctl dockerを再起動します

プッシュ画像

tagを入力した後、 pushコマンドを使用してプッシュします。

docker push 111.111.111.111:5000/sunhengzhe/express-app:v1 

プッシュに失敗しました

Retrying in 5 secondsてもアップロードに失敗する問題が発生した場合。まず、サーバー上でlogsコマンドを使用してログを表示します。

docker ログ -f docker-registry

-fファイルの内容の連続出力を意味します。

filesystem: mkdir /var/lib/registry/docker: permission denied表示される場合は、selinux の問題である可能性があり、サーバー上のマウント ディレクトリを処理する必要があります。

chcon -Rt svirt_sandbox_file_t /root/docker/registry/

この例では、 /root/docker/registry/です。

画像をプルする

pullコマンドを使用する

docker pull 111.111.111.111:5000/sunhengzhe/express-app:v1

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker Registry プライベート ウェアハウスを構築するための詳細な手順
  • Docker でローカルプライベートウェアハウスを構築するための詳細な手順
  • Docker プライベートリポジトリの管理とローカルリポジトリ内のイメージの削除
  • プライベートレジストリ内の画像を照会または取得する方法
  • Dockerチュートリアル: プライベートウェアハウスの詳細な説明
  • プライベート倉庫のcentos7 docker1.12インストールの詳しい説明
  • Dockerプライベートウェアハウスを構築する最も簡単な方法の詳細な説明
  • Dockerプライベート倉庫の構築と利用の詳細説明
  • CentOS 7の詳細解説:Dockerプライベートウェアハウスの構築と使い方
  • Dockerプライベートウェアハウスの構築とインターフェース管理の詳細な説明

<<:  Vue サーバーに js 構成ファイルをインポートする方法

>>:  mysql5.7.19 winx64 解凍版のインストールと設定のチュートリアル

推薦する

Nginx プロキシを使用してフロントエンドのクロスドメイン問題を解決する方法

序文Nginx (「エンジン エックス」と発音) は、リバース プロキシ、ロード バランサ、HTTP...

MySQLクエリステートメントの簡単な操作例

この記事では、例を使用して、MySQL クエリ ステートメントの簡単な操作を説明します。ご参考までに...

CSSスクロールバースタイル設定の実装

Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...

Docker Toolboxを完全にアンインストールする方法

Docker Toolbox は、Windows 10 Professional より前のバージョン...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

MySQL クエリ データベース容量方法手順

すべてのデータベースの合計サイズを照会する方法は次のとおりです。 mysql> informa...

プロセスごとにネットワーク帯域幅を監視する Linux ツール Nethogs のインストールと展開

概要Linux 用のオープン ソース ネットワーク監視ツールは数多くあります。たとえば、帯域幅の使用...

測定画像HTTPリクエスト

一般的なブラウザでテスト ページを開き、Fiddler で http リクエストを表示してください。...

React NativeのstartReactApplicationメソッドの簡単な分析

今回は、 RNの起動処理を整理しました。最後のstartReactApplication比較的複雑で...

JavaScript デザインパターンの学習 アダプタパターン

目次概要コードの実装要約する概要アダプタ パターンは、デザイン パターンの動作パターンのパターンです...

jQueryは画像の強調表示を実現します

ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...

Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明

esインストール docker pull elasticsearch:7.4.0 # -d : バッ...

Vue Element UI カスタム説明リストコンポーネント

この記事の例では、Vue Element UIカスタム説明リストコンポーネントの具体的なコードを参考...

ウェブページのメモリ使用量とCPU使用量を削減する方法

一部の Web ページは大きく見えなくても開くのに非常に時間がかかる場合があります。一方、他の We...

JS 関数のアンチシェイクと関数スロットリングを理解する方法

目次概要1. 関数デバウンス2. 機能スロットリング(スロットル)概要関数アンチシェイクと関数スロッ...