エントリーから実戦シリーズまでDocker Dockerhub&民営倉庫 港湾建設と活用

エントリーから実戦シリーズまでDocker Dockerhub&民営倉庫 港湾建設と活用

序文

前回の記事では、イメージのカスタマイズ方法やコンテナオーケストレーションについて紹介しましたが、イメージ管理については触れられていなかったようです。では、コード管理のように、イメージファイルに対してプッシュ操作とプル操作を実装できるでしょうか?答えはイエスです。 Docker-hub は、他の人が作成したさまざまなイメージを検索したり、自分のイメージを管理したりできるパブリック ウェアハウスです。 Harbor は、画像をアップロードできるプライベート画像倉庫です。同じイントラネット内の他のユーザーはダウンロードして使用できます。独自のサーバーに展開されるため、より安全です。 docker-hub と Harbor の関係は、GitHub と Gitlab の関係に似ています。

1. パブリックイメージリポジトリ Docker-hub

1. docker-hubの紹介

パブリック イメージ リポジトリは通常、Docker またはその他のサードパーティ組織 (Alibaba Cloud、Tencent Cloud、NetEase Cloud など) によって提供され、誰でもイメージ リポジトリを登録して使用できます。 Docker Hub は、100,000 を超えるコンテナ イメージを擁する世界最大のイメージ マーケットです。

2. 画像を倉庫に提出する

具体的な手順:アカウントを登録 >> ログイン >> ウェアハウスを作成 >> Linux コマンドライン Docker ログイン >> イメージ名を変更する (ウェアハウス名と一貫性を保つ) >> イメージをウェアハウスに送信する

①ミラーリポジトリを作成する

GitHub でコード リポジトリを作成する場合と同様に、パブリック (公開、インターネットから閲覧可能) とプライベート (保護、自分だけが閲覧可能) の 2 種類に分かれています。

② Linuxコマンドライン経由でDockerアカウントにログインする

 docker login # docker-hubにログイン

③ イメージリポジトリと一致するようにイメージ名を変更します。

 docker タグ joinsunsoft/docker.ui:latest chenjigang/auto-test:v1.1

④ イメージを公開リポジトリに送信する

 docker push chenjigang /自動テスト: v1.1

⑤ 画像リポジトリを表示する

2. 画像リポジトリHarborの民営化

1. ハーバーの紹介

Harbor は、VMware によってオープンソース化されたエンタープライズ レベルの Docker レジストリ管理プロジェクトです。権限管理 (RBAC)、LDAP、ログ監査、管理インターフェース、自己登録、イメージ複製、中国語サポートなどの機能が含まれています。

エンタープライズ レベルのプライベート レジストリ サーバーとして、Harbor はより優れたパフォーマンスとセキュリティを提供します。レジストリを使用して環境転送イメージを構築および実行するユーザーの効率を向上します。 Harbor は、複数のレジストリ ノードにインストールされたイメージ リソースのレプリケーションをサポートします。すべての画像はプライベート レジストリに保存され、データと知的財産が会社の内部ネットワーク内で管理されることが保証されます。さらに、Harbor は、ユーザー管理、アクセス制御、アクティビティ監査などの高度なセキュリティ機能も提供します。

  • ロールベースのアクセス制御- ユーザーと Docker イメージ リポジトリは、「プロジェクト」を通じて整理および管理されます。ユーザーは、同じ名前空間 (プロジェクト) 内の複数のイメージ リポジトリに対して異なる権限を持つことができます。
  • イメージのレプリケーション- イメージは複数のレジストリ インスタンス間で複製 (同期) できます。これは、負荷分散、高可用性、ハイブリッド クラウド、マルチクラウドのシナリオに特に適しています。
  • グラフィカル ユーザー インターフェイス- ユーザーはブラウザーを介して現在の Docker イメージ リポジトリを参照および取得し、プロジェクトと名前空間を管理できます。
  • AD/LDAP サポート- Harbor は認証管理のために企業内の既存の AD/LDAP と統合できます。
  • 監査管理- イメージ リポジトリ上のすべての操作を記録して追跡し、監査管理を行うことができます。
  • 国際化- 英語、中国語、ドイツ語、日本語、ロシア語にローカライズされています。すぐにさらに多くの言語が追加される予定です。
  • RESTful API - RESTful API により、管理者は Harbor をより細かく制御できるようになり、他の管理ソフトウェアとの統合が容易になります。
  • 簡単な導入- オンラインおよびオフラインのインストール ツールを提供し、vSphere プラットフォーム (OVA モード) の仮想デバイスにもインストールできます。

Gitee アドレス: https://gitee.com/project_harbor/harbor?utm_source=alading&utm_campaign=repo

2. 港湾建設

インストール手順: Harbor のすべてのサービス コンポーネントは Docker にデプロイされるため、公式インストールでは迅速なデプロイのために Docker-compose が使用されるため、Docker と Docker-compose をインストールする必要があります。 Harbor は Docker Registry V2 に基づいているため、Docker バージョンは 1.10.0 以上、Docker-compose バージョンは 1.6.0 以上である必要があります。

① インストールパッケージをダウンロードして解凍する

オンラインダウンロード:

 https://github.com/goharbor/harbor/releases/download/v2.2.2/harbor-online-installer-v2.2.2.tgz をダウンロードしてください
tar -xvf ハーバーオンラインインストーラーv2.2.2.tgz

②設定ファイルを編集する

 cp harbor.yml.tmpl harbor.yml # harbor.yml ファイルのコピーをコピーします
vi ハーバー.yml

次のように編集します。

  • ホスト名をローカルIPに変更する
  • デフォルトのポートは80ですが、他の指定ポートに変更できます。
  • httpsの関連設定をコメントアウトする

③インストール環境の準備

 ./prepare # 準備スクリプトを実行する

実行が完了すると、ローカルにdocker-compose.ymlファイルと共通ディレクトリが追加されます。

④ 港を設置する

 ./install.sh #ハーバーをインストール

インストール プロセス中に、ハーバー イメージが自動的にダウンロードされ、関連するコンテナーが起動されます。

⑤ 港を訪問

インストールが成功すると、harbor にアクセスできます: http://192.168.1.122:8087。ここで、ip はローカル IP、port は構成ファイル harbor.yml で構成されたポートです。デフォルトのアカウントとパスワードは次のとおりです: admin Harbor12345

パスワードはharbor.ymlファイルで表示または変更できます。

⑥ インストール中によくある問題と解決策

  • エラー: Redis コンテナが重複しています

理由: ローカルの Redis コンテナがすでに存在し、Harbor は Redis コンテナを起動できません

解決策: ハーバーディレクトリのdocker-compose.ymlでredisコンテナ名を変更し、再起動します。

 docker -作成-d

各港湾コンテナのステータスを表示します。

  • エラー: レジストリ コンテナが重複しています

レジストリ コンテナーがローカルに既に存在する場合、Harbor インストール プロセスでエラーが報告されます。解決策: 元のレジストリ コンテナーを削除し、./install.sh を再実行してインストールします。この方法でもエラーが報告される場合は、docker-compose up -d を実行して各サービスを起動します。

3. ローカルイメージをHarborにプッシュする

①プロジェクトを作成する

②Dockerログイン

以前に docker-hub にログインしたことがあるため、「docker login」コマンドを使用して再度ログインすると、デフォルトのログイン アドレスは引き続き docker-hub アドレスになります。そのため、ハーバーにログインする場合は、ログイン時にログインアドレスを指定する必要があります。

 dockerログインhttp://192.168.1.122:8087

初めてログインする場合は、プロンプトに従ってハーバーのユーザー名とパスワードを入力します。これらは、フロントエンド ログインに使用されるアカウントとパスワードと同じである必要があります。

このアドレスには以前一度ログインしたことがあるため、認証記録がローカルに保存され、再度ログインするときにユーザー名とパスワードを入力しなくても正常にログインできます。

次のエラーが発生した場合:

次に、ローカル IP アドレス (ポートが 80 でない場合はポート番号も含む) を /etc/docker/daemon.json ファイルの insecure-registries リストに追加し、構成をリロードします。

 {
「レジストリミラー」 : [
"http://registry.docker-cn.com"
"http://docker.mirrors.ustc.edu.cn" ,
"http://hub-mirror.c.163.com"
"http://cr.console.aliyun.com/"
「https://8wb4g36l.mirror.aliyuncs.com」
]
"安全でないレジストリ" : [ "192.168.1.122:8087" ] ,
「グラフ」 : 「/home/docker_home」
}

 systemctlデーモン-reload
systectl dockerを再起動します

再度ログインすると、ログインは成功します。

③ ローカル画像にタグを付ける

指定されたプロジェクトにアップロードする前に、イメージ名を ip:ポート番号/プロジェクト名/イメージ名:タグ名の形式で指定する必要があります。たとえば、rabbitmq イメージの場合、名前は次のようになります。
192.168.1.122:8087/ハーバー/rabbitmq:5.7.33

テストを容易にするために、ローカルイメージを直接コピーして名前を変更しました。

 docker タグ rabbitmq : 3.7 -管理192.168.1.122 : 8087 / harbor / rabbitmq : 3.7 -管理

④ ローカルイメージをHarborにプッシュする

 docker push 192.168 .1 .122 : 8087 / harbor / rabbitmq : 3.7 -管理

harbor という名前のプロジェクトを確認すると、rabbitmq:3.7-management が表示されます。テストは成功しました。

⑤ Harborから画像を取得する

  • 画像をプルする
 docker pull 192.168 .1 .122 : 8087 /ライブラリ/ mysql : 5.7 .33

下の図からわかるように、MySQLイメージは正常に取得されました。

同時に、Harbor 管理端末では最新のプル時間も確認できます。

  • 取得したイメージに基づいてコンテナを作成する
 docker run -it -d -e MYSQL_ROOT_PASSWORD = 123456 --name=mysql -p 3307:3306 192.168.1.122:8087/library/mysql:5.7.33 を実行します。

MySQLコンテナに入り、MySQLにログインします

ここまでで、「Harbor バックエンドにログイン >> ウェアハウスを作成 >> Docker コマンドラインを使用して Harbor にログイン >> イメージ名を変更 (ウェアハウス名と一致させる) >> イメージをウェアハウスに送信 >> イメージをプル >> プルしたイメージに基づいてコンテナを作成 >> コンテナを表示する」という一連の操作がすべて完了しました。

<<:  信頼できるデータの自由な流通を促進するために、Inspur Data Cloud のビジネス戦略が正式に発表されました

>>:  クラウド コンピューティング仮想化三部作の第 1 部: CPU とメモリの仮想化

推薦する

優れた SEM 広告タイトルを書くための 7 つのヒント: ユーザーを誘導して惹きつける方法

SEMプロモーションは今や企業からますます注目を集めています。限られたスペースでより重要な情報を表示...

アプリケーションをクラウドに移行しますか?これらの3つのステップは素晴らしい顧客体験を保証します

[51CTO.com クイック翻訳] 今日、多くの企業が顧客向けの Web サイトやアプリケーション...

「知乎チャンネル配信戦略」を徹底分析!

ご質問がある場合は、Zhihu までお問い合わせください。このスローガンはますます多くの人々に知られ...

一般的なKubernetesコマンドのメモです

この記事は主によく使われるKubernetesコマンドを友人向けのメモとしてまとめたものです。 K8...

著作権登録は検索エンジンに任せよう

一昨日はオリジナルコンテンツの絶望についてお話ししましたが、今日は引き続き、オリジナルコンテンツの特...

3 か月でウェブサイトをスピードアップする方法

私は4年間SEOに携わっており、大小さまざまなアルゴリズムのアップデート、ウェブサイトの降格、Kステ...

Android アプリマーケットの検索ランキングルール、Android アプリマーケットの ASO 最適化!

国内の多くのチャネルは量に基づいていますが、検索に関しては、量が依然としてある程度影響していると言え...

クリスマス: ミッドフェーズ - 60% オフ/ウェブホスティング/無料ドメイン名/専用 IP/SSL

Midphase のクリスマス割引は約 2 日前から実施されており、本日リリースされました。お勧めし...

2019年海外市場調査白書

最近、中国ビジネスネットワークデータセンター(CBNData)とTmall Overseasは共同で...

Ansible の Kubernetes モジュールを使用したコンテナ オーケストレーションの自動化

[[349188]] Kubernetes と Ansible を組み合わせてクラウドを自動化します...

henghost: 超高速香港サーバー (PING 5MS 未満)、双方向 CN2+アジア太平洋 BGP 帯域幅、20M 帯域幅、無制限のトラフィック

私はSonderCloud Limitedを推薦したいと思います。同社は2010年から香港の自社デー...

Baiduプロモーションの背景を使用して高品質のキーワードを選択する方法

現在、SEO最適化作業を行っている多くの友人は、Baiduプロモーションの背景がキーワード選択に適し...

百度指数が実際のトラフィックに比例しない5つの理由

Baidu の最適化を行っている友人にとって、Baidu Index は常に無視できないデータ情報で...

2018年はブランドマーケティングを再認識しましょう!

「企業ブランドマーケティングと国家ブランドマーケティングは、一見異なる概念のように見えますが、実際に...