Dockerプライベート倉庫の構築と利用の詳細説明

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環境にプライベートパブリックウェアハウスを構築する方がよい解決策です。今日は実際にプライベート docker ウェアハウスを構築します。

環境計画

必要なマシンは、docker プライベートサーバー倉庫のサーバーと、docker を使用する通常のマシンの 2 台です。 どちらのマシンも ubuntu16 バージョンのサーバーで、IP 情報は次のとおりです。

マシン名ip関数
dockerレジストリ192.168.119.148 Docker プライベート ウェアハウス サーバー
docker アプリ192.168.119.155 Dockerサービスを実行する通常のサーバー

マシンを準備する

この演習では、上記の 2 台のマシンは VMware 上に作成された 2 台の仮想マシンであり、両方に Docker サービスがインストールされています。詳細な作成およびインストールのプロセスについては、「Kubernetes under Rancher 1: Building Standardized VMware Images」を参照してください。後で間違いを避けるために、VMware 内の 2 つのイメージの名前をそれぞれ「docker-registry」と「docker-app」に変更することを忘れないでください。

仮想マシンが起動したら、まず /etc/hostname ファイルを変更し、2 台のマシンのホスト名をそれぞれ「docker-registry」と「docker-app」に変更してから、reboot コマンドで再起動してください。

プライベートリポジトリのインストール

docker-registry マシンにログインします (SecureCRT を推奨)。

プライベート ウェアハウス サービスを提供するために使用されるレジストリ コンテナーを起動するには、次のコマンドを実行します。

docker run --name docker-registry -d -p 5000:5000 レジストリ

以下のように、docker ps コマンドを実行してコンテナのステータスを表示します。


コンテナは正常に起動し、ポート 5000 を docker-registry のポート 5000 にマッピングして外部サービスを提供します。

コマンド curl -X GET http://127.0.0.1:5000/v2/_catalog を実行します。 受信した応答は次のようになります。 これは json オブジェクトであり、リポジトリに対応する値は空の json 配列であり、現在リポジトリにイメージがないことを示しています。

{"リポジトリ":[]}

プライベート倉庫が作成され、起動しました。それでは実際に使ってみましょう。

httpプロトコルプッシュをサポート

通常、アプリケーション サーバーは https を使用してイメージをウェアハウスにプッシュします。ここでは、コマンド ラインを使用して通常の http を使用したプッシュをテストするため、docker の起動パラメータを変更して、http プロトコルで動作できるようにする必要があります。

イメージをプッシュするマシンはdocker-appなので、このマシンにログインします(SecureCRTを推奨)。

/etc/default/docker ファイルを変更し、次の赤いボックスの内容を追加します。

/lib/systemd/system/docker.service を再度変更します。以下の赤いボックス内の内容のうち、最初の行が追加され、2 行目が変更されます。

次のコマンドを実行して、構成情報を再読み込みし、Docker サービスを再起動します。

systemctl daemon-reload;サービス docker 再起動

イメージをプライベートリポジトリにプッシュする

次に、docker-app でイメージをダウンロードし、そのイメージをプライベート ウェアハウスにプッシュします。

docker-app マシンにログインします (SecureCRT を推奨)。

以下に示すように、docker pull tomcat コマンドを実行して、hub.docker.com から最新バージョンの tomcat イメージをダウンロードします。

ダウンロード後、docker images を実行して、以下のようにイメージ情報を表示します。

上記の赤いボックスに示されているように、このイメージの ID は 3dcfe809147d なので、次のコマンドを実行して、このイメージにプライベート ウェアハウス IP のタグを追加し、後でプライベート ウェアハウスに正常にプッシュできるようにします。

docker タグ 3dcfe809147d 192.168.119.148:5000/tomcat

次に、docker images を実行してイメージ情報を表示します。次の図に示すように、新しいイメージが表示され、REPOSITORY は 192.168.119.148:5000/tomcat になります。

プッシュするには、次のコマンドを実行します。

ドッカープッシュ 192.168.119.148:5000/tomcat

以下のように、順調に進んでいることがわかります。

プッシュが成功したら、docker-app と docker-registry でそれぞれ curl -X GET http://192.168.119.148:5000/v2/_catalog を実行してプライベート ウェアハウスのイメージ情報を表示すると、次の内容が表示されます。

プライベートリポジトリイメージの使用

docker-app マシンで、まず次のコマンドを実行してローカル イメージを削除します。

docker rmi 192.168.119.148:5000/tomcat トムキャット

次に、次のコマンドを実行して、プライベート サーバー上のイメージを使用してコンテナーを作成し、ポート 8080 をマップします。

docker run --name tomcat001 -p 8080:8080 -idt 192.168.119.148:5000/tomcat

ローカルミラーがない場合は、次に示すように、プライベートサーバーにアクセスしてダウンロードします。

docker-app の IP は 192.168.119.155 なので、現在のコンピューターでブラウザーを開き、192.168.119.155:8080 と入力すると、以下に示すように、おなじみの Tomcat のウェルカム ページが表示されます。

これで実践演習は終了です。皆さんのプライベート倉庫構築に役立つことを願っています。皆様も123WORDPRESS.COMを応援して頂ければ幸いです。

以下もご興味があるかもしれません:
  • Docker で onlyoffice をインストールして展開する詳細なプロセス
  • Ubuntu Dockerのインストール、展開、シンプルなアプリケーション
  • CentOS7 システムへの Docker のインストールと展開および基本チュートリアル
  • CentOS 7の詳細解説:Dockerプライベートウェアハウスの構築と使い方
  • Docker Registry プライベート ウェアハウスを構築するための詳細な手順
  • インストールからアプリケーションのデプロイ、プライベートウェアハウスの構築までDockerの基本コマンド

<<:  Mysql5.7.14 Linux版のパスワードを忘れた場合の完璧な解決策

>>:  Mysql5.7.18 のインストールとマスタースレーブレプリケーションの詳細なグラフィック説明

推薦する

Linux\Nginx 環境での仮想ドメイン名の設定とテスト検証

Nginx 仮想ドメイン名設定を使用すると、ドメイン名を購入せずに特定のドメイン名を介してローカル ...

jsはユーザーのページ操作を記憶するためにクッキーを使用します

序文開発プロセスでは、ブラウザレベルでユーザーが実行した操作を記憶するなど、同様の要件に遭遇すること...

リモート Linux システムでポートが開いているかどうかを確認する 3 つの方法

これは、Linux 管理者だけでなく、私たち全員にとって非常に重要なトピックです。つまり、IT イン...

Apache FlinkCEP でタイムアウトステータス監視を実装するための詳細な手順

CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...

MySQL における SQL ページングクエリのいくつかの実装方法と利点と欠点

【SQL】SQLページングクエリの概要開発プロセスではページングが必要になることがよくあります。今日...

Kubernetes を使用して Springboot または Nginx をデプロイするための詳細なチュートリアル

1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...

Vue 開発ガイドの重要な知識の要約

目次概要0. JavaScriptとWeb開発の基礎1. Vueの基本概念Vue コア機能コンポーネ...

vuexプロジェクトにおけるログインステータス管理の実践プロセス

目次道具:ログインシナリオ:練習する:シナリオ1: 思考と実践シナリオ2: 思考と実践要約する道具:...

CSSのborder-radiusプロパティを使用して円弧を設定します

現象: divを一定の振幅で円、楕円などに変更する方法: CSSのborder-radiusプロパテ...

MySQL 5.7.25 のインストールと設定方法のグラフィックチュートリアル

MySQL インストール ファイルには、msi 形式と zip 形式の 2 種類があります。クリック...

MySQL の一般的なログの概要

序文: MySQL システムには、さまざまな種類のログが存在します。さまざまなログにはそれぞれ独自の...

MySQL マルチマスターと 1 スレーブのデータバックアップ方法のチュートリアル

概要いずれかのデータベースに対する操作は他のデータベースに自動的に適用され、2 つのデータベースのデ...

Vant Uploaderは1枚以上の写真をアップロードするコンポーネントを実装します

この記事では、1枚以上の写真をアップロードするためのVant Uploaderコンポーネントを紹介し...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

Ubuntu Linuxシステムをインストールするときにハードディスクをパーティション分割する最も合理的な方法の詳細な説明

Windows または Linux オペレーティング システムをインストールするかどうかに関係なく、...