Docker registry入門 第五回コンテナ型仮想化の情報交換会
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Docker registry入門 第五回コンテナ型仮想化の情報交換会

  • 36 views
Uploaded on

11/14に大阪で開催された第五回コンテナ型仮想化の情報交換会で発表した、「Docker Registry入門」の資料です。

11/14に大阪で開催された第五回コンテナ型仮想化の情報交換会で発表した、「Docker Registry入門」の資料です。
当日ミラーリングについて補足すべきことを言い忘れていたので、スライドに追記しました。

More in: Engineering
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment

Views

Total Views
36
On Slideshare
34
From Embeds
2
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 2

https://twitter.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Copyright©2014 NTT corp. All Rights Reserved. Docker Registry入門 2014/11/14 第五回コンテナ型仮想化の情報交換会 @spice_sisters
  • 2. 2Copyright©2014 NTT corp. All Rights Reserved. • Docker Registryとは • Docker Registryを立ち上げる • Docker Registryを使う • Docker Registryをより便利に使う 目次 ●試した環境 ・Docker 1.3.0 ・Docker Registry 0.8.1 ・CentOS 7.0 ・ESXi5.5
  • 3. 3Copyright©2014 NTT corp. All Rights Reserved. Docker Registryとは
  • 4. 4Copyright©2014 NTT corp. All Rights Reserved. • Dockerイメージを共有するためのサービス • https://hub.docker.com/ • 有名所のイメージはオフィシャルイメージがある • Githubと連携したイメージのAutomated Buildや、 CIのためのWebhookが使える 前提知識 〜DockerHub〜
  • 5. 5Copyright©2014 NTT corp. All Rights Reserved. • Dockerイメージを格納するためのストレージコンポー ネント • イメージとレイヤー情報などを格納 • ストレージコンポーネントなので、ユーザ認証やWeb UIなどは別 Docker Registryの役割 https://docs.docker.com/reference/api/hub_registry_spec/ を改変 ・認証やWeb UIはここ ・OSSはない ・ここがOSSで、 プライベート環境に 立てられる Index Registry Storage イメージの 情報 イメージ やり取り 認証情報
  • 6. 6Copyright©2014 NTT corp. All Rights Reserved. • OSSのpythonアプリ • https://github.com/docker/docker-registry • 最新の安定バージョン:0.8.1->0.9.0 • 今回試したのは0.8.1です! • オフィシャルイメージ(registry)として提供 • 使い所(個人的見解) • 限られたメンバーでイメージを共有したい場合 • よくDLされるオフィシャルイメージをローカルに置いておきた い場合(ミラーリング) などなど Docker Registry概要
  • 7. 7Copyright©2014 NTT corp. All Rights Reserved. Docker Registryを立ち上げる
  • 8. 8Copyright©2014 NTT corp. All Rights Reserved. • オフィシャルイメージで提供 立ちあげ方 # docker run -d -p 5000:5000 registry
  • 9. 9Copyright©2014 NTT corp. All Rights Reserved. • pipでもインストール可能 • docker-registry/ADVANCED.md • Dockerfile • https://github.com/docker/docker- registry/blob/0.8.1/Dockerfile 立ちあげ方
  • 10. 10Copyright©2014 NTT corp. All Rights Reserved.
  • 11. 11Copyright©2014 NTT corp. All Rights Reserved. • 認証 • Standaloneか否か(Indexと認証情報のやり取りをするか) • Indexのエンドポイント • ストレージバックエンド • Filesystem • S3, GCS • Swift, Glance • 検索エンジンバックエンド(イメージ検索API用) • sqlalchemy(pythonのORMライブラリ) • ミラーリング(transparent mirror用) • キャッシュ configで指定できる項目(抜粋)
  • 12. 12Copyright©2014 NTT corp. All Rights Reserved. • runだけすると、config_sample.ymlに記述されて るデフォルト設定が指定される • https://github.com/docker/docker- registry/blob/master/config/config_sample.yml • コンテナ内の /docker-registry/config/config_sample.yml • run時の環境変数オプション(-e)で個別に指定/上書き することができる • 環境変数名はconfig_sample.ymlを参照 configの指定方法 # docker run ¥ -e SEARCH_BACKEND=sqlalchemy ¥ -e LOGLEVEL=info ¥ -p 5000:5000 ¥ registry
  • 13. 13Copyright©2014 NTT corp. All Rights Reserved. https://github.com/docker/docker- registry/blob/master/config/config_sample.yml
  • 14. 14Copyright©2014 NTT corp. All Rights Reserved. • configのテンプレートをflavorと呼ぶ • flavor単位で指定することもできる • config_sample.ymlにもいくつかflavorが定義され ている • デフォルトで立ち上がってくるのはこのファイルで定義されて いる”dev” flavor flavorでの指定 # docker run ¥ -e SETTINGS_FLAVOR=common ¥ -p 5000:5000 registry
  • 15. 15Copyright©2014 NTT corp. All Rights Reserved. • 独自コンフィグを書いて指定もできる • RegistryのDockerfileを編集して独自イメージをビル ドするのもよい 独自コンフィグ、Dockerfile # docker run ¥ -v /home/me/myfolder:/registry-conf ¥ -e DOCKER_REGISTRY_CONFIG=/registry-conf/mysuperconfig.yml ¥ -p 5000:5000 registry
  • 16. 16Copyright©2014 NTT corp. All Rights Reserved. Docker Registryを使う
  • 17. 17Copyright©2014 NTT corp. All Rights Reserved. • コンテナ名にURLを埋め込んでpush イメージのpush, pull # docker pull node # docker tag node myregistry.com:5000/node # docker push myregistry.com:5000/node
  • 18. 18Copyright©2014 NTT corp. All Rights Reserved. • コンテナ名にURLを埋め込んでpull イメージのpush, pull # docker pull myregistry.com:5000/node
  • 19. 19Copyright©2014 NTT corp. All Rights Reserved. Docker Registry API https://docs.docker.com/reference/api/registry_api/ イメージの検索
  • 20. 20Copyright©2014 NTT corp. All Rights Reserved. • Web APIで取得できる イメージ一覧取得 # curl -X GET http://myregistry.com:5000/v1/search?q=search_term HTTP/1.1 200 OK Vary: Accept Content-Type: application/json {"query":"search_term", "num_results": 3, "results" : [ {"name": "ubuntu", "description": "An ubuntu image..."}, {"name": "centos", "description": "A centos image..."}, {"name": "fedora", "description": "A fedora image..."} ] }
  • 21. 21Copyright©2014 NTT corp. All Rights Reserved. • いちいちAPIをたたくのが面倒な場合、Docker Hub にあるWeb UIコンテナを使うとよい • docker-registry-ui, docker-registry-web で検索すると出てくる • 例:atcol/docker-registry-ui Web UI
  • 22. 22Copyright©2014 NTT corp. All Rights Reserved. atcol/docker-registry-ui
  • 23. 23Copyright©2014 NTT corp. All Rights Reserved.
  • 24. 24Copyright©2014 NTT corp. All Rights Reserved. Docker Registryをより便利に使う
  • 25. 25Copyright©2014 NTT corp. All Rights Reserved. • いちいちコンテナ名にURLを埋め込むのめんどくさい → ミラーリングオプションで解決! • docker clientを立ち上げる時に、ミラーRegistryを 指定するオプション --registry-mirror • Docker Registryを立ち上げる時にミラーソースを指 定 ミラーリング # docker --registry-mirror=http://myregistry.com:5000 -d # docker run -p 5000:5000 ¥ -e STANDALONE=false ¥ -e MIRROR_SOURCE=https://registry-1.docker.io ¥ -e MIRROR_SOURCE_INDEX=https://index.docker.io registry
  • 26. 26Copyright©2014 NTT corp. All Rights Reserved. • pullをすると、Mirror Registryにデータが保存され る → 次のpullからはMirrorから取得! (一部常にIndexに聞きにいくデータ有) ミラーリング metadata layers image ancestory registry-1.docker.io Private Registry (11/15追記) ●ミラーリングはまだ手元で試し て成功していません ●オフィシャルイメージをpullしよ うとすると、--registry-mirrorを 無視する挙動になっていたり、非 オフィシャルイメージのpullもエ ラーを吐いてうまくいってません ●後日原因が判明したら、どこか に続報を書きたいと思います。
  • 27. 27Copyright©2014 NTT corp. All Rights Reserved. • Docker HubとRegistryとの関係 • Docker Hub and Registry Spec - Docker Documentation • https://docs.docker.com/reference/api/hub_registry_spec / • --registry-mirror の解説 • docker/registry_mirror.md at master · docker/docker · GitHub • https://github.com/docker/docker/blob/master/docs/sour ces/articles/registry_mirror.md • ミラーリングの方法、キャッシュの設定方法など • Docker Advanced registry usage • http://www.slideshare.net/Docker/https- dldropboxusercontentcomu20637798docker-meetup- freiburg 参考資料