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 型の使用の詳細

推薦する

MySQL統計テーブルのサイズを説明する例

各データベース内の各テーブルのサイズをカウントすることは、データ ガバナンスの最も単純な要件の 1 ...

DockerコンテナがJupyterにアクセスできない問題の解決策

このプロジェクトでは、環境を構築するために Docker コンテナを使用します。Dockerfile...

抽選効果を実現するJavaScript

この記事では、宝くじマシンの効果を実現するためのJavaScriptの具体的なコードを参考までに共有...

Vue Element フロントエンドアプリケーション開発のための従来の JS 処理機能

目次1. 従来のコレクションに対するフィルター、マップ、および削減処理方法2. 再帰処理3. for...

Vue3 における ref と reactive の詳細な説明と拡張

目次1. 参照と反応1. 反応的2.参照2. shallowRef と shallowReactiv...

nginx が複数のプロキシ層を通過して実際の送信元 IP を取得するプロセスの詳細な説明

質問Nginx は $remote_addr を実際の IP アドレスとして受け取りますが、実際には...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

MySQL 8で追加された3つの新しいインデックスは、非表示、降順、関数です。

目次MySQL 8 の隠しインデックス、降順インデックス、関数インデックス1. 隠しインデックス1....

Linuxの貼り付けコマンドの使い方

01. コマンドの概要貼り付けコマンドは各ファイルを列ごとに結合します。これは、2 つの異なるファイ...

VueでTypeScriptを使用する方法

導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...

異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法

新しい公式サイトはオンラインですが、携帯電話で新しい公式サイトにアクセスすると、エクスペリエンスが非...

Docker 経由で Spring Boot アプリケーションを公開およびデプロイするプロセスの分析

目次手動展開1.アイデアを使ってSpring Bootプロジェクトを作成する2. プロジェクトをJa...

HTML/CSS におけるフロートの使用例の詳細

1. floatの基本的な使用例1. まず 2 つの div ボックスを作成し、高さ、幅、背景色を設...

Mysql マスタースレーブ同期 Last_IO_Errno:1236 エラー解決

Mysql マスタースレーブ同期の Last_IO_Errno:1236 エラーの原因は何ですか? ...

CSS3のボックスサイズプロパティの興味深いボックスモデルについての簡単な説明

誰もがボックス モデルの構成を、内側から外側まで、コンテンツ、パディング、境界線、マージンについて知...