2019独角兽企业重金招聘Python工程师标准>>>

Docker以及Registry介绍 博客分类: docker

【编者的话】本文介绍了Docker与Registry,作者说Docker是一个application hosting框架,亮点是简化应用的部署以及应用部署的版本控制。同时,作者介绍了Docker Registry的安装以及一个可以通过网页浏览Registry的镜像项目docker-registry-web。

Docker是一个应用托管框架(application hosting framework),它可以通过类似虚拟机一样的容器来部署、管理应用,容器又可以通过API创建和控制它们。

Docker允许你把依赖/服务器和应用打包成一个叠加在其他镜像(如Ubuntu,或专为需求准备的内容)之上的瘦小镜像。有别于虚拟机的是,尽管使用了 LXC和 cgroups(前 面文章中提到的Linux概念)将它们与其它系统中的程序严格地隔离开来,它们却共享着相同的资源,并且几乎没有额外开销。当你启动一个虚拟机,你最终得 到的是一个用于安装或运行应用的提示符或UI。当你启动一个应用容器,你只要运行一个用于启动应用及其依赖的脚本,仅此而已。你能在一个系统上运行数个虚 拟机,却可以运行上千个应用容器。如果你想要流线分布,可以考虑在系统层面上使用CoreOS来托管你的镜像。

Docker的另一个功能是版本控制。你可以把容器里做的任何改变提交成一个新的镜像。当然,你也可以使用同一个镜像(镜像本身是不可变的)启动任意多个容器。

在分发镜像给其他团队或公司的过程中,可能需要在你的当前系统之外找个地方发布或定位你的镜像。这可通过Registry实现。尽管Docker提供了公共的 Docker Hub Registry,你或许想要一个用于自己公司或团队的私有的Registry。

因为Docker的组件/附件自身经常是通过Docker镜像发布的,本示例也侧面展示了启动一个以Docker为基础的应用是多么简单(如果你 之前并不熟悉这块)。除了服务占用的端口之外,你无须知道客户机应用的任何东西。实际上,你可以启动其他Docker镜像需要的镜像(之后就被称为容 器),让Docker映射随机的本地端口给它,然后将提供服务的容器的端口自动转发到依赖这些服务的容器上(通过“ 链接”功能)。

使用类似 Registry项目首页示例的命令来启动你的Registry:

$ docker run -e SETTINGS_FLAVOR=s3 -e AWS_BUCKET=mybucket -e STORAGE_PATH=/registry -e AWS_KEY=myawskey -e AWS_SECRET=myawssecret -e SEARCH_BACKEND=sqlalchemy -p 5000:5000 registry

这主要是为应用设置六个环境变量,让它保存到S3上,并将宿主(本地)系统的5000端口转发到客户机(Registry)的5000端口上。 “registry”是运行的镜像名称(如果它是由某个用户拥有的,那看起来像是“/”)。如果本地尚不存在这个镜像,它将被定位并拉取(pull)下 来。如果没有使用registry前缀做限定,将会假定它位于Docker Hub上。

这个示例中,我们从Hub上将Ubuntu镜像拉取下来,然后推送(push)到我们的Registry里。值得注意的是,我们通过添加Registry的主机名/端口前缀来限定“推送”和“拉取”请求到我们的registry中。

$ sudo docker pull ubuntu:14.04
$ sudo docker tag 826544226fdc yourregistry.net:5000/ubuntu
$ sudo docker push yourregistry.net:5000/ubuntu
$ sudo docker pull yourregistry.net:5000/ubuntu

tag命令在我们的registry中为给定的其他地方的镜像保留了一个新的位置。你可以在本地列表中得到它的ID字符串。

默认情况下,Registry只与Docker socket直接通讯或通过REST进行管理。如果你想更容易地浏览镜像,请安装 docker-registry-web项目:

$ docker run -p 8080:8080 -e REG1=http://:5000/v1/ atcol/docker-registry-ui

请记住,它需要与你的Registry实例联系,所以要确保你提供的registry主机名在docker-registry-web容器里可被解析。

截图如下:

docker-registry-web实际上是一个Java应用,然而它是个设计不佳的镜像(如果知道这点对你很重要的话)。

最后,在你玩够Registry实例后,记得将它隐藏在Nginx代理之后,并添加认证(双向、HTTP等)。

原文链接:Intro to Docker, and Private Image Registries(翻译:Sean 审校:林仁)

来自:http://dockerone.com/article/108

http://www.open-open.com/lib/view/open1420287708609.html

转载于:https://my.oschina.net/xiaominmin/blog/1598701

Docker以及Registry介绍相关推荐

  1. 虚拟化+docker概念基本介绍

    虚拟化+docker概念基本介绍 前言 一.虚拟化 (1)虚拟化概述 (2)cpu的时间分片(cpu虚拟化) (3)cpu虚拟化性能瓶颈 (4)虚拟化工作原理 ①虚拟化类型 ②虚拟化功能 二.Dock ...

  2. 【云原生】第四篇--Docker容器镜像介绍及应用

    Docker容器镜像介绍及应用 一.Docker容器镜像操作 1.1 查看本地容器镜像 1.1.1 使用docker images命令查看 1.1.2 使用docker image命令查看 1.1.3 ...

  3. Docker搭建Registry私有仓库

    Docker搭建Registry私有仓库 简介 私有仓库安装成功后就可以使用 docker 命令行工具对 registry 做各种操作了.然而不太方便的地方是不能直观的查看 registry 中的资源 ...

  4. 【Docker】registry部署docker私有镜像仓库

    Docker Hub作为Docker默认官方公共镜像仓库,但是如果我们不想使用怎么办,第一我们可以替换默认镜像仓库为我们国内的一些镜像仓库,第二就是如我们自己搭建一个自己的私有镜像仓库,官方也提供do ...

  5. Docker 安装registry (构建私有镜像库)

    2019独角兽企业重金招聘Python工程师标准>>> 下载registry镜像 docker pull registry 远行registry // -v ~/registry:/ ...

  6. Docker 私服Registry简介与使用Docker-Compose安装Registry

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  7. 如何在CentOS 7.x / RHEL 7.x上搭建Docker Private Registry(Docker私有仓库)

    原作者:Pradeep Kumar  转载来源:https://www.linuxtechi.com/setup-docker-private-registry-centos-7-rhel-7/ 如何 ...

  8. deploy owned private docker registry based on docker HUB registry image

    docker HUB提供了registry的image, 可以非常方便的搭建私有regisrty. 当然你也可以选择从docker-registry的源码来搭建. 见 : https://github ...

  9. 【Docker】Registry搭建私有仓库、证书认证、用户登录认证

    一.Docker Registry工作原理 02_Docker Registry角色 Docker Registry有三个角色,分别是index.registry和registry client. i ...

  10. Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui

    Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui 2017年03月17日 20:51:4 ...

最新文章

  1. 浅谈几种区块链网络攻击以及防御方案之女巫攻击
  2. linux 内核 sscanf,linux sscanf()
  3. 逐飞科技对于STC8H1K系列的单片机正交解码的资料以及实验
  4. C# DateTimePicker控件如何精确设置显示时分秒
  5. EntityFreamWork 项目总结
  6. 第十三天-linux正则表达式及重点命令
  7. Selenium API-WebDriver 属性
  8. OpenFile基于浏览器的免费网络存储管理
  9. Ext2 常见界面界面(grid分页、窗口布局、下拉框级联)
  10. 前端商城vue项目案例1
  11. matlab 12脉波变压器,12脉波整流电路MATLAB-Simulink仿真及谐波分析.pdf
  12. 说说数据一致性有哪几种?
  13. jq实现标签单选、多选功能
  14. 树莓派Pico开发板的C/C++开发环境搭建(VSCode+PlatformIO)
  15. “create-react-app myapp 创建失败”的总结
  16. 单细胞测序分析及单细胞转录组
  17. mysql数据的备份
  18. js 将日期转换成时间戳
  19. as使用git@oschina
  20. 内核编译出错 [arch/arm/boot/compressed/piggy.lzo] Error 1

热门文章

  1. 优化理论11---- Zoutendijk可行方向法、非线性约束情形、ε起作用约束可行方向法、Frank-Wolfe 方法
  2. ue4网格转地形_关于纬地结合扫描地形图进行道路设计和出图的教程
  3. python 录制网易云登陆_Python爬虫教程,爬取网易云的音乐
  4. 蓝桥杯2020年第十一届Python省赛第一题-门牌制作
  5. jsp基础知识点——思维导图
  6. BZOJ 2756: [SCOI2012]奇怪的游戏
  7. saltstsck执行sls配置
  8. c++实现gray code(格雷码)
  9. CocoaPods加载第三方库
  10. 详解IOS开发应用之并发Dispatch Queues