港湾労働者のプライベート倉庫を構築する方法
1. 背景の紹介
Docker で docker pull xxx コマンドを実行すると、docker がどこを検索するのか、ダウンロードはどうなるのかが気になるかもしれません。画像?
関連する推奨事項: docker チュートリアル
質問の回答:
実際には、registry.hub.docker.com アドレスから検索します。これは Docker 社が提供するパブリック ウェアハウスであり、上のイメージは誰でも利用でき、使用できます。したがって、docker pull registry.hub.docker.com/library/alpine のように、ウェアハウス アドレスを使用してイメージをプルすることもできますが、この方法でダウンロードされたイメージのデフォルト名は長くなることに注意してください。
社内で Docker を使用したい場合、商用プロジェクトを公共の倉庫にアップロードすることは基本的に不可能ですが、複数のマシンで共有したい場合はどうすればよいでしょうか?
このニーズがあるため、プライベート倉庫が活躍します。
いわゆるプライベート倉庫とは、ローカル (LAN) に構築された公共の倉庫のようなもので、構築後、イメージをプライベート倉庫に送信できます。このようにして、Docker を使用してプロジェクト イメージを実行し、商用プロジェクトが公開されるリスクを回避できます。
以下では、公式レジストリ イメージを使用してプライベート イメージ ウェアハウスを構築しますが、もちろん他にも多くの方法があります。
2. 環境
Docker がインストールされたサーバーを 2 台準備します。 サーバー マシン (ホスト名はレジストリ): Docker プライベート ウェアハウス サーバー、レジストリ コンテナーを実行します。 テスト マシン (ホスト名はノード): 通常の Docker サーバー、このサーバーにテスト イメージ nginx をダウンロードし、テストのためにレジストリ サーバーにアップロードします;
3. デプロイ (サーバー操作)
-
イメージ レジストリのダウンロード
# docker pull registryUsing default tag: latest latest: Pulling from library/registry 81033e7c1d6a: Pull complete b235084c2315: Pull complete c692f3a6894b: Pull complete ba2177f3a70e: Pull complete a8d793620947: Pull complete Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54 Status: Downloaded newer image for registry:latest复制代码
ログイン後にコピー -
イメージの表示
# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE registry latest f32a97de94e1 3 months ago 25.8 MB复制代码
ログイン後にコピー -
レジストリ コンテナーの実行
# docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name レジストリ registry:latest
#パラメータの説明 -itd: 対話型操作のためにコンテナ内で疑似ターミナルを開き、バックグラウンドで実行します。 -v: データの永続性を実現するために、ホストの /data/registry ディレクトリをコンテナの /var/lib/registry ディレクトリ (このディレクトリはレジストリ コンテナ内にイメージ ファイルが保存されるディレクトリです) にバインドします。 -p: マッピング ポート。ホストの 5000 ポートにアクセスすると、レジストリ コンテナのサービスにアクセスします。 --restart=always: これは再起動戦略です。コンテナが異常終了した場合、コンテナは自動的に再起動されます。 --name registry: registry という名前のコンテナを作成します。任意の名前を付けることができます。 registry:latest: これは、取得したばかりのイメージです。06a972de6218b1f1c3bf9b53eb9068dc66d147d14e18a89ab51db13e339d3dc9
#イメージ ウェアハウス内のすべてのイメージをテストします -
#curl http://127.0。 0.1: 5000/v2/_catalog
{"repositories":[]}
は実行されたばかりで画像コンテンツがないため、現在は空です。
4. テスト イメージ ウェアハウス (テスト側の操作)
- ソースとイメージ ウェアハウスを変更する
-
# vim /etc/docker/daemon.json{"registry-mirrors": [ "https://registry.docker-cn.com"] }# systemctl restart docker复制代码
ログイン後にコピーnginx イメージをダウンロードします -
# docker pull nginx# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 719cd2e3ed04 2 weeks ago 109MB复制代码
ログイン後にコピーイメージにタグを付けます -
形式の説明: 使用法: docker タグ SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
# docker tag nginx:latest registry服务器:5000/nginx:kurisu复制代码
ログイン後にコピーnginx:lastest
これは、ソース イメージと取得したばかりのイメージ ファイルです。
registry server:5000/nginx:kurisu
これは、ターゲット ミラーは、レジストリのプライベート ミラー サーバーの IP アドレスとポートでもあります。効果の表示
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry服务器:5000/nginx kurisu 719cd2e3ed04 2 weeks ago 109MB nginx latest 719cd2e3ed04 2 weeks ago 109MB复制代码
ログイン後にコピーミラー サーバーへのアップロード -
# docker push registry服务器:5000/nginxThe push refers to repository [registry服务器:5000/nginx] Get https://registry服务器:5000/v2/: http: server gave HTTP response to HTTPS client复制代码
ログイン後にコピーこれはエラーです。アップロードするには https メソッドが必要です。問題を解決するには、daemon.json を変更できます:
[root@node ~]# vim /etc/docker/daemon.json { "registry-mirrors": [ "https://registry.docker-cn.com"], "insecure-registries": [ "registry服务器:5000"] }复制代码
ログイン後にコピープライベート ミラー サーバーのアドレスを追加します。書き込み形式は json であることに注意してください。は厳密な記述要件であるため、docker サービスを再起動します。
# systemctl restart docker
Upload again:
# docker push registry服务器:5000/nginxThe push refers to repository [registry服务器:5000/nginx] d7acf794921f: Pushed d9569ca04881: Pushed cf5b3c6798f7: Pushed kurisu: digest: sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe size: 948复制代码
ログイン後にコピー
Test download image - アップロード テストは問題ありません。レジストリ サーバーからテストしてみましょう。アップロードしたばかりの Busybox イメージをダウンロードし、まずノード ホスト上のイメージを削除します。
# docker rmi -f $(docker images -aq)Untagged: registry服务器:5000/nginx:kurisu Untagged: registry服务器:5000/nginx@sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe Untagged: nginx:latest Untagged: nginx@sha256:bdbf36b7f1f77ffe7bd2a32e59235dff6ecf131e3b6b5b96061c652f30685f3a Deleted: sha256:719cd2e3ed04781b11ed372ec8d712fac66d5b60a6fb6190bf76b7d18cb50105 Deleted: sha256:e9b6506fb887de50972aefd99d7c5eb56b1a8e757ed953cdfecb86b5359bcb22 Deleted: sha256:55d9d9692a9615a28d183a42bc3881a72a39393feba3664e669e7affb78daa76 Deleted: sha256:cf5b3c6798f77b1f78bf4e297b27cfa5b6caa982f04caeb5de7d13c255fd7a1e复制代码
ログイン後にコピー
ノード ホスト上のすべてのイメージが削除されていることを確認します。# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE复制代码
ログイン後にコピー次に、レジストリ サーバーから nginx イメージをダウンロードします。
# docker pull registry服务器:5000/nginx:kurisukurisu: Pulling from nginxfc7181108d40: Pull complete c4277fc40ec2: Pull complete 780053e98559: Pull complete Digest: sha256:079aa93463d2566b7a81cbdf856afc6d4d2a6f9100ca3bcbecf24ade92c9a7fe Status: Downloaded newer image for registry服务器:5000/nginx:kurisu复制代码
ログイン後にコピーノード ホスト上のイメージを表示します。
# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE registry服务器:5000/nginx kurisu 719cd2e3ed04 2 weeks ago 109MB复制代码
ログイン後にコピーリモート ウェアハウスを表示します。 image
# curl http://registry服务器:5000/v2/_catalog{"repositories":["nginx"]}复制代码
ログイン後にコピー
# curl http://registry服务器:5000/v2/nginx/tags/list{"name":"nginx","tags":["kurisu"]}复制代码
ログイン後にコピー
以上が港湾労働者のプライベート倉庫を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Dockerバージョンを取得するには、次の手順を実行できます。Dockerコマンド「Docker -version」を実行して、クライアントバージョンとサーバーバージョンを表示します。 MacまたはWindowsの場合は、DockerデスクトップGUIのバージョンタブまたはDockerデスクトップメニューのバージョン情報を表示することもできます。

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerログを表示する方法は次のとおりです。たとえば、Docker Logsコマンドを使用します。たとえば、Docker logs container_name docker execコマンドを使用して /bin /shを実行し、logファイルを表示します。 cat /var/log/container_name.log docker-compose -f docker-comのDocker ComposeのDocker-Composeログを使用します。

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)
