Docker介绍以及Registry的安装 -摘自http://dockone.io/article/108
本文介绍了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://<system hostname>:5000/v1/ atcol/docker-registry-ui
请记住,它需要与你的Registry实例联系,所以要确保你提供的registry主机名在docker-registry-web容器里可被解析。
截图如下:

docker-registry-web实际上是一个Java应用,然而它是个设计不佳的镜像(如果知道这点对你很重要的话)。
最后,在你玩够Registry实例后,记得将它隐藏在Nginx代理之后,并添加认证(双向、HTTP等)。
Docker介绍以及Registry的安装 -摘自http://dockone.io/article/108的更多相关文章
- Centos + docker,Ubuntu + docker介绍安装及详细使用
docker笔记 常用命令 设置docker开机自启:sudo chkconfig docker on 查所有镜像: docker images 删除某个镜像:docker rmi CONTAINER ...
- docker介绍和安装(一)
虚拟化简介 虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以 ...
- Docker介绍及安装(一)
一.Docker简介 1.1 docker介绍 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的cgroup,namespace,以及 AUFS 类的 ...
- 微服务分布式电商项目学习笔记(三)---- docker介绍安装以及使用docker安装软件(2020/7/10)
其实在介绍docker的使用和安装之前应该还要介绍虚拟机的安装与配置,以及虚拟网络的配置,但是我使用的是vmware,而视频课使用的是vagrant,这一块我简看的,因此没有过多的介绍,至于vmwar ...
- 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云
一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...
- Docker 介绍及安装
Docker介绍 Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建.运行.分发容器). Docker基于go语言并遵从Apache2.0协议 ...
- Docker介绍及安装
Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
- Docker 介绍安装
简介: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行 ...
- 基于docker registry镜像安装私服docker hub
采用docker registry镜像安装docker私服,通过https://hub.docker.com/_/registry链接搜索registry镜像 1.输入命令:docker pull r ...
随机推荐
- setw()函数使用
在C++中,setw(int n)用来控制输出间隔.例如:cout<<'s'<<setw(8)<<'a'<<endl;则在屏幕显示s a ...
- 【PHP 】 伪静态 - 3. 伪静态的基本使用
原理图: 原先浏览器输入的网址会发送到apache服务器,然后apache会调用php模块来处理,最后找到你所想访问的页面; 如果在apahce, httpd.conf文件中开启rewrite机制,则 ...
- (LeetCode 78)SubSets
Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be ...
- 30款免费的手机UI设计资源
在 原型设计阶段,我们会尽量寻找一些灵感刺激大脑,从而让我们的想象力飞-灵感给了我们很好的开始,但是当我们把灵感化为现实的时候,又需要一些实用而又高 效的组件来完成.即使你有非常善于把灵感实例化在草稿 ...
- VMware Workstation 12下载安装与激活图文教程
一.简介: VMware Workstation 12专门为Win10的安装和使用做了优化,支持DX10.4K高分辨率显示屏.OpenGL 3.3.7.1声道,以及各种新硬件和新技术.从vm11版本开 ...
- MySQL 联合索引测试2
接上一篇文章: http://www.cnblogs.com/xiaoit/p/4430300.html 1:首先删掉上一篇建立的索引,重新建立一个. mysql> DROP INDEX idx ...
- 【BIRT】使用rptlibrary设置统一数据源
在使用birt开发报表的过程中我们通常会发现,如果直接在报表中写死数据源的话,那么之后如果数据库服务器发生变更,那么所有的报表都得一一去修改数据源 这是一个相当耗时间的过程. 1.首先新建librar ...
- Python之L.pop()和del L[i]
# -*- coding: utf-8 -*- #python 27 #xiaodeng #Python之L.pop()和del L[i] #http://python.jobbole.com/826 ...
- java中list、set和map 的区别(转)
作者:佚名出处:IT专家网论坛 2009-06-17 13:00 List按对象进入的顺序保存对象,不做排序或编辑操作.Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素 ...
- Javascript模块化编程:require.js的用法
摘自:http://blog.jobbole.com/30046/ 这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库 ...