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 解凍版のインストールと設定のチュートリアル

推薦する

MySQLの共有ロックと排他ロックの使用例の分析

この記事では、例を使用して MySQL の共有ロックと排他ロックの使用方法を説明します。ご参考までに...

Vue は zip ファイルのダウンロードを実装します

この記事の例では、Vueの具体的なコードを共有し、zipファイルをダウンロードして参考にしています。...

MySQL で重複時間を削除して時間差を計算する実装

目次必要:ドライブ:アイデア:成し遂げる:個人的には、実際の開発ではストアド プロシージャの使用はお...

フロントエンドセキュリティの詳細な説明: JavaScript の http ハイジャック対策と XSS

目次HTTP ハイジャック、DNS ハイジャック、XSS HTTPハイジャックDNSハイジャックXS...

Docker は MySQL をインストールし、中国語の文字化けの問題を解決します

目次1. MySQLイメージを取得する2. ダウンロードが完了したか確認する3. MySQLはローカ...

フラッシュプラグインを使用してPCのカメラを呼び出し、TMLページに埋め込む方法

序文この記事を書いた主な理由は、チームリーダーが、ブラウザを使用してコンピューターのカメラを呼び出し...

MySQLはテーブルデータを復元するためにfrmファイルとibdファイルを使用します

目次frm ファイルと ibd ファイルの紹介frm ファイル回復テーブル構造ibd ファイル回復テ...

MySQLデータベースをアンインストールするための完全な手順

MySQLデータベースを完全にアンインストールするプロセスは次のとおりです。 1. MySQLサービ...

NavicatでMySqlスケジュールタスクを作成する方法の詳細な説明

Navicat で MySql スケジュールタスクを作成する詳細な説明イベントは、MySQL が特定...

ブラウザタブの左端に表示されるウェブサイトのアイコンを設定します

この文の目的は何ですか?コードをコピーコードは次のとおりです。 <link rel="...

Linux での MySQL 5.7.19 (tar.gz) インストール グラフィック チュートリアル

Linux で MySQL-5.7.19 バージョンをインストールするための最初のチュートリアル。す...

Nginx tp3.2.3 404 問題の解決

最近、Apache を nginx に変更しました。TP プロジェクトを実行に移すと、404 エラー...

Linuxコマンドに基づいてフォルダー内の特定のファイルパスを抽出します

最近では、特定のフォルダ内の特定のファイルを自動的に検索する必要があり、ファイルパスとファイル名を別...

デザインリファレンス 美しく独創的なブログデザイン

以下にリストされているすべてのブログはオリジナルであり、独自にデザインされています。これらは、他者が...

MySQL 5.7.16 ZIP パッケージのインストールと設定のチュートリアル

この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...