、ドッキングウィンドウミラーリング倉庫
倉庫倉庫は、公共および民間の倉庫に分かれています
公式リポジトリDockerHubます。https://hub.docker.com
DockerPoolコミュニティ倉庫ます。https://dl.dockerpool.com
1、公共のレジストリの使用
画像を保存して配布するための最も直接的な方法は、ドッカーハブを使用することです。
ドッカードッカーハブは、同社のパブリックレジストリを維持することです。ユーザーは、リポジトリの自由ドッカーハブに自分の画像を保存することができます。あなたがあなたのイメージにアクセスするために他人をしたくない場合は、プライベートリポジトリを購入することができます。
ドッカーハブに加えて、quay.io別のパブリックレジストリで、ドッカーハブは、同様のサービスを提供しています。
ここでドッカーハブと私たちのイメージにアクセスする方法を説明します。
最初のステップ:すべての最初は、ドッカーハブにアカウントを登録する必要があります。(Https://cloud.docker.com/)
ステップ2:ドッカーホストにログインします。
[ルート@のren7〜]#]ドッキングウィンドウのログイン - uがren1212 パスワード: ログインに成功しました
第三段階:一致アカウントドッカーハブ有するように修飾イメージリポジトリ
ユーザ名を含むように、ミラーとしてミラーレジストリを同じ名前の異なるユーザを区別するためにドッカーハブは、完全な形式は:[ユーザ名] / XXX:タグ
私たちは、ラベル画像を変更するためにドッキングウィンドウで、コマンドタグを再することができます
[ルート@のren7〜]#]ドッキングウィンドウの画像の サイズを作成したリポジトリタグ画像のID 11a0d1b90f00 nginxのV1を 20 時間前に394メガバイトの CentOSの最新0f3e07c0138f 2 週間前に220メガバイトの レジストリ最新f32a97de94e1 7ヶ月前 25 0.8メガバイト [ルート@のren7〜]#のドッキングウィンドウタグレジストリ:最新ren1212 / レジストリ:V1 [ルート@のren7〜]#]ドッキングウィンドウの画像 サイズを作成したリポジトリタグ画像のID nginxのv1の11a0d1b90f00 20時間前に394メガバイトの CentOSの最新0f3e07c0138f 2 週間前に220メガバイトの レジストリ最新f32a97de94e1 7ヶ月前 25 0.8メガバイト ren1212 /レジストリのV1 f32a97de94e1 7ヶ月前に 25 0.8メガバイト
注意:ドッキングウィンドウの関係者は、自分の鏡像なしのユーザー名を維持します。
ステップ4:ドッキングウィンドウによってミラーは、アップロードドッキングウィンドウハブを押します
[ルート@ ren7〜]#]ドッキングウィンドウプッシュren1212 / レジストリ、V1 プッシュは[docker.ioリポジトリに言及 / ren1212 / レジストリ] 73d61bf022fdを:ライブラリからマウント / レジストリ 5bbc5831d696:ライブラリからマウント / レジストリ d5974ddb5a45:ライブラリからマウント / レジストリ f641ef7a37ad :ライブラリからマウント / レジストリ d9ff549177a9:ライブラリからマウント / レジストリ V1:ダイジェスト:SHA256:b1165286043f2745f45ea637873d61939bff6d9a59f76539d6228abf79f87774サイズ:1363
ステップ5:サインhttps://hub.docker.comを公開リポジトリにアップロードした画像を見ることができ、
あなたは、アップロードされた画像を削除したいとだけドッキングウィンドウハブインターフェイス上で動作することができます。
ステップ6:この画像は、他のドッキングウィンドウのホストのダウンロードも可能
2は、(独自のプライベート倉庫を作成する)ローカルレジストリを設定しました
ドッカーハブ非常に便利であるが、しかし、のようないくつかの制限があります:
(1)インターネット接続と低速ダウンロードとアップロードの速度が必要です。
(2)あなたは無料の専用リポジトリを使用することはできませんが、が、ドッカーハブは、誰もがアクセスできるミラーにアップロードしました。
(3)セキュリティ上の理由から、多くの組織では、外部のネットワークに画像を許可していません。
解決策は、ローカルレジストリを構築することです。
ステップ1:実行してレジストリコンテナ(ren7)
ドッカーハブも公式の画像のレジストリを持っていながら、ドッカーはオープンレジストリを持っています。ここでは、ドッカーで彼のレジストリで実行されます。
[ルート@ ren7〜]#1 -d -pドッキングウィンドウラン5000:5000 -vは/ var / libに/レジストリ:の/ var / Lの IB /レジストリ--restart =常に--nameレジストリregistry:2 することができません見つけるのイメージを" レジストリ:2 「ローカル 2:ライブラリー/から引っ張るレジストリ c87736221ed0:すでに存在している 1cc8e0bb44df:すでに存在している 54d33bcb37f5:すでに存在している e8afc091c171を:すでに存在している b4541f6d3db6は:すでに存在する ダイジェスト:SHA256:b224aa2d9a6397e9102b0b887a3e92496eadd76872efb7595bed97f9b76d2056 ステータス:ダウンロードした新しいイメージをするために、レジストリ:2 b9bd140f648bea07b32594d58d8f4560c466f8263d1f5f0e510e1a2f3030824e [ルート@のren7〜]#]ドッキングウィンドウのPS - 作成したコンテナのID画像COMMAND STATUSポートの名称 b9bd140f648bレジストリ:2 " /entrypoint.shの/ etc ... " 16秒前に最大15秒 0.0。0.0:5000 - > 5000 / tcpのレジストリ
- Dコンテナを起動するためのバックグラウンドです。 コンテナ-p 5000ホストポートにマッピングされている5000ポート。5000は、レジストリサービスポートです。 ミラーリングされたデータを格納するために使用されるディレクトリ/テストにマッピングされた容器-vの/ var / libに/レジストリホスト、。
ステップ2:設定しドッカクライアント(ren8)
(1)設定ファイルは、プライベートバンクアドレスに追加されます修正
VIMの/ etc /のsysconfig /ドッキングウィンドウの 4行目:ドッカー-レジストリのURLを追加し OPTIONS = ' -安全でない、レジストリを192.168.254.162:5000
注意:時々、次のエラーが発生します。
これは、セキュリティ上の理由から、レジストリに起因して、デフォルトのHTTPS証明書をサポートする必要がある、あなたは(2)を解決する方法を述べたの利点を取ることができます。
(2)または変更/etc/docker/daemon.jsonのファイルを、次の行を追加します。
"安全でない - レジストリ":[ "192.168.11.7:5000"]、
{ " レジストリミラー":[ " http://cc83932c.m.daocloud.io " ]、 " 安全でない、レジストリ":[ " 192.168.11.7:5000 " ]、 " MAX-同時-ダウンロード":10 、 " ドライバログ「:」JSONファイル「」レベルのログ「:」警告「」ログOPTSを「{ 」最大サイズ「:」10メートル" " MAX-ファイル":" 3 " } }
(3)再起動ドッカサービス
ドッキングウィンドウを再起動しsystemctl
第三段階:レジストリと一致するように、ミラーの名前を変更することによってタグをドッカー。
[ルート@ ren8〜]#]ドッキングウィンドウの画像 リポジトリタグ画像ID CREATED SIZEの busyboxの最新19485c79a9bb 6週間前 1つの0.22メガバイト [ルート@のren8〜]#のドッキングウィンドウタグのbusybox:最新192.168。11.7:5000 / busyboxの:最新の [ルート@のren8〜]#]ドッキングウィンドウの画像 SIZE作成したリポジトリのタグ画像のID 192.168。11.7:5000 / busyboxの最新19485c79a9bb 6週間前に 1 0.22メガバイト busyboxの最新19485c79a9bb 6週間前に 1つの 0.22メガバイト
ミラープラスランレジストリのホスト名とポートの前で。
ステップ4:アップロード倉庫ミラーミラー自身が新たに作成されました
[ルート@ ren8〜]#のドッキングウィンドウプッシュ192.168。11.7:5000 / busyboxのは:最新の プッシュは、[リポジトリに言及192.168。11.7:5000 / busyboxの] 6c0ea40aef9d:プッシュ 最新:ダイジェスト:SHA256:dd97a3fe6d721c5cf03abac0f50e2848dc583f7c4e41bf39102ceb42edfd1808サイズ:527
ステップ5:既存のローカルレジストリミラーを外し、プライベートライブラリ192.168.11.7に、ダウンロードが再
[ルート@のren8〜]#]ドッキングウィンドウのRMI 192.168。11.7:5000 / busyboxの:最新の [ルート@ ren8〜]#ドッキングウィンドウRMIのbusybox:最新の [ルート@ ren8〜]#]ドッキングウィンドウの画像 リポジトリタグ画像のID CREATED SIZE [ルート@ ren8〜]#のドッキングウィンドウが引っ張っ192.168。11.7:5000 / busyboxの:最新 最新:busyboxののから引っ張る 7c9d20b9b6cd:完全なプル ダイジェスト:SHA256:dd97a3fe6d721c5cf03abac0f50e2848dc583f7c4e41bf39102ceb42edfd1808の ステータス:新しいイメージをダウンロードするために 192.168。11.7:5000 / busyboxの:最新 192.168。11.7:5000 / busyboxの:最新の [ルート@のren8〜]#]ドッキングウィンドウの画像 SIZE作成したリポジトリのタグ画像のID 192.168。11.7:5000 / busyboxの最新19485c79a9bb 6週間前に 1つの 0.22メガバイト
二、依存基盤となるコア技術をドッキングウィンドウ
名前空間(ネームスペース)
コントロール群(コントロール群)
と共同(連合ファイルシステムの)システムファイル
Linux仮想ネットワークのサポート:ローカルおよびコンテナ内の仮想インターフェイスの作成
1、ネームスペース(名前空間):コンテナ・リソースとの間のアイソレーションを提供
各コンテナは、独自の個別の名前空間を持って、一つのアプリケーションは、同じオペレーティングシステムに依存しないとして実行されている実行し、我々は、ファイルシステム、ネットワークカードや他のリソースを参照してくださいすることができ、同時にコンテナ保証します。
namesaces管理进程号 , 每个进程命名空间有一套自己的进程号管理方法 , 进程命名空间是一个父子关系的结构 , 子空间中的进程对于父空间是可见的
网络命名空间------有了 PID 命名空间 , 那么每个名字中的进程就可以相互隔离 , 但是 , 网络端口还是共享本地的端口 . 网络命名空间就是为进程提供一个完全独立的网络协议栈的视图包括:网络设备接口 ,IPv4 和 IPv6 协议栈 ,IP 路由表 , 防火墙规则 ,sockets 等等 ...
目前容器所使用的命名空间提供5种不同的类型:
2、控制组功能 cgroups
控制组 (Control groups)---CGroups 是 Linux 内核的一个特性 ,主要用来对共享资源进行隔离、限制、审计等 。cgroups 允许对于进程或进程组公平 ( 不公平 ) 的分配 CPU 时间、内存分配和 I/O 带宽。
容器通过 cgroups 来得到所能够管理资源的分配和使用。因此容器所获得资源仅为所有系统资源的一个部分
资源限制:内存子系统为进程组设置内存使用上限,内存达到上限后再申请内存,就会发出 Out of Memory
优先级:通过优先级让一些组得到更多 CPU 等资源
资源审计:用来统计系统上实际把多少资源用到适合的目的上 , 可以使用 cpuacct 子系统记录某个进程组使用的 CPU 时间
隔离:为组隔离名字空间 , 这样一个组不会看到其他组的进程,网络连接和文件系统
控制:挂起、恢复和启动等操作
3、联合文件系统 (Union FS)
docker 中使用AUFS(another Union File System 或 v2 版本以后的Advanced multi-layered Unification File System) 控制为每一个成员目录设定只读 / 读写 / 写出权限 , 同时 AUFS 有一个类似分层的概念 , 对只读权限的分支可以逻辑上进行增量的修改
轻量级的高性能分层文件系统 , 它支持将文件系统中的修改信息作为一次提交 , 并层层叠加 , 并且可以将不同目录挂载到同一个虚拟文件系统下docker 目前支持的联合文件系统包括AUFS/btrfs/vfs/DeviceMappe