Dockerが独自のローカルイメージリポジトリを構築するための手順

Dockerが独自のローカルイメージリポジトリを構築するための手順

1. 環境と準備

  • 1. Ubuntu 14.04
  • 2.Docker環境

2. 建設プロセス

1. ミラーソースを変更する(デフォルトのものは遅すぎるので、国内のものの方が速いです)

sudo vim /etc/default/docker
次のパラメータを入力します。
DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com" //NetEase、daoCloudsも使用できます

新しくインストールしたUbuntu環境であれば、以下のコマンドを実行します(もちろんviを使ったり、直接書き込むこともできます)

sudo apt-get update //ダウンロードエラーを防ぐためにapt-getソースを更新します sudo apt-get install vim -y //vimをダウンロードします

2. Dockerを起動し、レジストリイメージソースをプルする

sudo service docker start //dockerを起動する
sudo docker pull registry //レジストリイメージをダウンロードする

3. ダウンロード後、ダウンロードが成功したかどうかを確認します

sudo docker イメージ

4. ダウンロード後、コンテナを起動し、コンテナ内のデータ マッピングを指定したディレクトリにマウントします。ここで、/opt/data/registry はホスト マシンに保存されているディレクトリです。

mkdir -p /opt/data/registry //ディレクトリを作成 sudo docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry 
  --name private_registry registry //コンテナを起動します -d: コンテナをバックグラウンドで実行できるようにします -p: マッピングポートを指定します(前者はホストマシンのポート番号、後者はコンテナのポート番号です)
-v: データマウント(前者はホストディレクトリ、後者はコンテナディレクトリ)
--name : 実行中のコンテナに名前を付ける

次にコンテナが正常に起動したかどうかを確認します

sudo docker ps 

5. ホストマシンのIPアドレスを確認する

ifconfig

6. docker 設定ファイルを変更し、独自のプライベート ライブラリ アドレスを追加します。docker が起動すると、/etc/init/docker.conf が読み込まれます。設定ファイルを読み込んだ後、/etc/default/docker ファイルが読み込まれることがわかったので、/etc/default/docker にプライベート ライブラリ アドレスを書き込むだけです。

sudo vim /etc/default/docker
DOCKER_OPTS を次のように変更します。
DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com --insecure-registry 192.168.147.129:5000"
** ポート 5000 を追加する必要があります。ホスト マシンはデフォルトでポート 80 にアクセスします。追加したくない場合は、コンテナーの起動時にコンテナーのポート 5000 をホスト マシンのポート 80 にマップできます。

変更後、コンテナを再起動してレジストリサービスを開始します。

sudo service docker restart //コンテナを再起動します sudo docker start private_registry //レジストリサービスを再起動します

上記の 5 つの手順により、プライベート ライブラリが構築されました。

3. テスト

1. イメージを取得してタグ付けする (busybox は比較的小さいため、例として busybox を使用します)

sudo docker pull busybox:latest //イメージをプルします sudo docker tag busybox:latest 192.168.147.129:5000/busybox

2. タグ画像をローカル画像リポジトリに送信する

sudo docker push 192.168.147.129:5000/busybox

3. すべてのビジーボックスイメージを削除してチェックする

sudo docker rmi busybox 192.168.147.129:5000/busybox //busybox イメージを削除します sudo docker images //busybox イメージに関する情報があるかどうかを確認します

4. ローカルイメージリポジトリからbusyboxイメージを取得して表示する

sudo docker pull 192.168.147.129:5000/busybox
sudo docker images // 192.168.147.129:5000/busybox イメージの情報を表示します

上記はプルが成功したことを示しています。

IV. 反省と改善

1. 上記のローカル倉庫は、同じネットワーク内にある限りアクセスできます。

2. 地元の倉庫をより便利に管理する方法を検討する価値がある

3. 上記の方法では本人認証が行われないため、本人認証を行う方法も検討する価値がある。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Centos7 システムで Docker ローカル イメージ ウェアハウスを構築する方法
  • Docker でプライベートイメージリポジトリを作成する方法のチュートリアル
  • Docker用国産イメージウェアハウスの使い方
  • Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明
  • Alibaba Cloud イメージリポジトリの Docker 構成変更の実装
  • .NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します
  • CentOS 7.2 サーバー上にプライベート Docker イメージ リポジトリを設定する例
  • HarborをベースにしたDockerプライベートイメージリポジトリの構築の詳細な説明
  • DockerでAlibaba Cloudイメージリポジトリを使用する方法
  • Docker でプライベートイメージリポジトリを構築する方法
  • Dockerイメージリポジトリの使い方

<<:  CocosCreator の新しいリソース管理システムの分析

>>:  MySQL 5.7 JSON 型の使用の詳細

推薦する

設定ファイルを変更した後、操作を再開します

余計なことは言わないで、コードだけ見てみましょう〜 # docker-compose をダウン # ...

WeChatアプレットはビデオプレーヤーのビデオコンポーネントを使用します

この記事の例では、WeChatアプレットのビデオプレーヤーコンポーネントの具体的なコードを参考までに...

測定画像HTTPリクエスト

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

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...

Win Server 2019 サーバーの IIS 構成と Web サイトの簡単な公開

1.まずサーバーにリモート接続する2. サーバーマネージャーを開く 3役割と機能の追加 4サーバープ...

Win10 64 ビットで圧縮パッケージを使用して最新の MySQL 8.0.18 をインストールするチュートリアル (画像とテキスト付き)

WIN10 64ビットに最新のMySQL8.0.18をインストールダウンロード公式サイトから最新バ...

Windows 7 64 ビットに最新バージョンの MySQL サーバーをインストールする方法のグラフィック チュートリアル

最近、MySQL データベースを勉強していて、設定ファイルを頻繁に変更したため、MySQL データベ...

Reactでパスワード強度検出器を実装する方法

目次序文使用コンポーネントの記述データ構造分析プロセス分析基礎コードの分析他の要約する序文パスワード...

Linux の MariaDB データベースについて

目次Linux の MariaDB データベースについて1. データベースとは何ですか? 2. デー...

ReactプロジェクトでのTypeScriptの実装

目次1. はじめに2. 使用方法ステートレスコンポーネントステートフルコンポーネント制御コンポーネン...

dockerがredisを再起動するとmysqlデータが失われる問題を解決する

公式ドキュメント:したがって、mysql は次のように起動する必要があります。 docker run...

MySQLはmysqldump+binlogを使用して、削除されたデータベースの原理分析を完全に復元します。

1. 概要MySQL データベースの日常的な操作とメンテナンスにおいて、ユーザーが誤ってデータを削...

Vue で親子コンポーネントの値を双方向バインドするために v-model を使用するときに発生する問題と解決策

目次シナリオ解決してみる解決するシナリオ今日、コンポーネントの双方向データバインディングにv-mod...

jQuery プロジェクトで重複送信を防ぐ方法

新しいプロジェクトでは、axios によって重複した送信を防ぐことができますが、古いプロジェクト (...

Reactでプロキシを有効にする2つの実用的な方法

プロキシを有効にする2つの方法React には、直接使用できるカプセル化された Ajax リクエスト...