• 1. Docker & Docker Hub
  • 2. 1. Docker Chinese community 2. Docker & Docker Governance 3. Namespaces & Cgoups 4. Storage Drive Kernel -> AUFS 5. Docker Hub & Docker Registry 7. Community Version Docker Hub -> docker-bucket 8. OpenSource Projects Base DockerAgenda
  • 3. Who am I ?马全一 Meaglith Ma Docker 中文社区创始人 dockboard.org & docker.cn [微博] @马全一 [G+] google.com/+MeaglithMa [Twitter] @genedna [Email] genedna@gmail.com [Book] Docker Open Book github.com/genedna/dockeropenbook
  • 4. About Docker Community in China dockboard.org -> docker.cnhttps://github.com/dockercn
  • 5. (本页无文本内容)
  • 6. System Virtualization VS Container Virtualization
  • 7. What’s Docker ?Docker Hub +
  • 8. DGAB -> Docker Governance Advisory Board DGAB or Fond? Seats for commit, no fee or sponsorship. Membership for 12 months, 24 months max. DGAB is not charge.
  • 9. How to use Docker?
  • 10. What’s namespaces?pidnetipcmntutsuser1. pid namespace 2. net namespace 3. mnt namespace 4. uts namespace 5. ipc namespace
  • 11. 1. CPU 2. Memory 3. Blkio 4. Net_cls 5. Net_prio 6. DeviceWhat’s cgroups
  • 12. What’s AUFS?
  • 13. Docker Local Storage Path -> /var/lib/docker
  • 14. Docker Hub & Registry Workflow
  • 15. How To Deploy Docker Registry?docker run -p 5000 docker-registryhttps://github.com/docker/docker-registry
  • 16. 1. docker 向 HUB 服务器注册 repository: PUT /v1/repositories// 2. 参数是 JSON 格式的 所有 image 的 id 列表,按照 image 的构建顺序排列。 3. 根据 进行循环: 3.1 获取 的 JSON 文件:GET /v1/images//json 3.2 如果没有此文件或内容返回 404 。 3.3 docker push 认为服务器没有 image 对应的文件,向服务器上传 image 相关文件。 3.3.1 写入 的 JSON 文件:PUT /v1/images//json 3.3.2 写入 的 layer 文件:PUT /v1/images//layer 3.3.3 写入 的 checksum 信息:PUT /v1/images//checksum 3.4 上传完此 tag 的所有 image 后,向服务器写入 tag 信息: PUT /v1/repositories/(namespace)/(repository)/tags/(tag) 4. 所有 tags 的 image 上传完成后,向服务器发送所有 images 的校验信息, PUT /v1/repositories/(namespace)/(repo_name)/imagesDocker Registry API -> Push
  • 17. Docker Registry API -> Pull1. docker 访问 Hub 服务器 repository 的 images 信息: GET /v1/repositories///images 2. docker 访问 registry 服务器 repository 的 tags 信息: GET /v1/repositoies///tags 3. 根据 中 image 信息进行循环: 3.1 获取 的 Ancestry 信息:GET /v1/images//ancestry 3.2 获取 的 JSON 数据: GET /v1/images//json 3.3 获取 的 Layer 文件: GET /v1/images/
  • 18. Golang Version Docker Registry
  • 19. # VERSION 0.1 # DOCKER-VERSION 0.7.3 # AUTHOR: Sam Alba # DESCRIPTION: Image with docker-registry project and dependecies # TO_BUILD: docker build -rm -t registry . # TO_RUN: docker run -p 5000:5000 registry # Latest Ubuntu LTS from ubuntu:14.04 # Update run apt-get update run apt-get -y upgrade # Install pip run apt-get -y install python-pip # Install deps for backports.lzma (python2 requires it) run apt-get -y install python-dev liblzma-dev libevent1-dev add . /docker-registry add ./config/boto.cfg /etc/boto.cfg # Install core run pip install /docker-registry/depends/docker-registry-core # Install registry run pip install file:///docker-registry#egg=docker-registry[bugsnag] env DOCKER_REGISTRY_CONFIG /docker-registry/config/config_sample.yml env SETTINGS_FLAVOR dev expose 5000 cmd exec docker-registryWhat’s Dockerfile ?
  • 20. OpenSource Projects Base Docker PaaS : Tsuru/Octohost/Deis/StackDock/Flynn/tusum/Dokku/Spin-Docker/Peas/Tutum Private Registry: quay.io/orchard/docker.cn OS: CoreOS/Atomic CI: Drone/Shippable Book: dockerbook.com Kubernetes
  • 21. End & Thanks申请 docker.cn 存储服务测试账号请把 用户名 发至 fiona@docker.cn 。