之前说过Docker的好处,Docker可以集装箱化的部署应用程序。那么Docker是通过什么实现的呢。要理解Docker内部构建,需要先理解Docker的四种部件

1)images:镜像,docker镜像是docker容器运行时的模板,一个镜像就是一个应用程序的模板。比如我用Docker创建一个Ubuntu,那就得        建立一个ubuntn的镜像,这个镜像就像是印刷术里面的板子,如果我需要再创建一个Ubuntu系统,就可以重复利用这个镜  像。镜像是由一系列的层(layers)组成,Docker使用UnionFS将这些层联合到单独的镜像,当你需要升级或者改变镜像的时候,
                  一个新的层就会被创建,不需要删除或者覆盖整个镜像。获取镜像,可以自己写一个Docker_file来创建,也可以从Docker                       Hub里面下载

2)docker仓库:docker仓库用来保存镜像,Docker仓库有公有和私有的概念,公有的Docker仓库名字是Docker Hub,Docker Hub里面                    提供里非常多的images,我们可以获得很多自己想要的镜像.https://hub.docker.com/ 这个就是Docker Hub的网址,里面有很多镜
                 像可以看看。

3)container:容器,docker容器中包含了某个应用运行的所有环境和程序,每一个容器都是由镜像创建而来。Docker容器可以停止,开                  始,删除,移动。

4) docker file:用来创建docker images的文件,可以根据自己的需要,创建自己要的images。以后会具体学习Docker File的

在安装Docker之前,我们需要知道,安装Docker本身是一个很烦的过程,但是我们可以借助工具,很轻松的安装Docker。原先,我们使用Boot2Docker在OSX下管理Docker。在Docker发布了Toolbox之后,新增了Docker Machine命令行。通过docker-machine,可以让我们一致化的命令在本地或者云计算上创建docker服务。以下boot2docker和docker-machine命令的对照表


在安装之前,我们还需要下载一个Virtualbox,用来管理虚拟机,因为Docker是在Linux上运行的,在Mac OS,和windows上,都必须创建一个Linux的虚拟机来作为桥梁运行Docker

1.用homebrew 安装docker 和docker-machine

2.创建一个名字为default的虚拟机

这个时候,查看Virtual Box会发现里面多了一个虚拟机

3.初始化环境变量

docker-machine env default 显示宿主机需要为default 虚拟机设置环境变量的指令。

然后按照提示执行 eval $(docker-machine env default)

这里要解释一下,如果,不设

置环境变量的话,Docker就无法在default虚拟机链接,会提示: Cannot connect to the Docker daemon. Is the docker daemon running on this host。

我们可以在环境变量里添加eval $(docker-machine env default) 。

这样的话,docker就安装完了。

Docker 学习应用篇之二: Docker的介绍和安装的更多相关文章

  1. Docker 学习应用篇之三: Docker的简单实用

    安装完Docker之后,我们就可以简单的使用Docker,来体会Docker的用处. 首先看下Docker的常用命令,都是我在实用Docker的时候用到的命令: docker常用命令: $ docke ...

  2. Docker学习(三)认识Docker和常用命令

    Docker学习(三)认识Docker和常用命令 Docker体系结构 docker服务端,作为服务的提供方,核心进程 docker daemon,所有docker命令都是通过这个进程完成的 REST ...

  3. Docker 学习应用篇之一: 初识Docker

    Docker 自从2013年以来就非常的火热,无论是从github上的代码活跃度,还是Redhat在RHE6.5中集成对Docker的支持,等等.第一次接触Docker,还是老师给我们介绍的. 1.初 ...

  4. Docker学习一篇就够了

    Docker 1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像 ...

  5. docker学习笔记(2)——docker常用命令

    参考博客: 1.官网教程:https://docs.docker.com/reference/ 可以一边敲命令一边对照官网学习,也可以通过阅读docker --help来学习 2..视频教程:http ...

  6. Docker学习总结(9)——Docker常用命令

    容器生命周期管理 - docker [run|start|stop|restart|kill|rm|pause|unpause] 容器操作运维 - docker [ps|inspect|top|att ...

  7. Docker学习总结(4)——Docker镜像与容器命令

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal. ...

  8. [置顶] Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)

    一.Docker是什么? 首先Docker是软件工业上的集装箱技术 回顾,在没有集装箱出现以前,传统运输行业中,会存在这些问题: 在运输过程中,货物损坏 装卸.运输货物,效率低下 运输手续繁多及运输环 ...

  9. docker的常用操作之二:docker内无法解析dns之firewalld设置等

    一,如何启动一个已退出的容器? [root@localhost ~]# docker start storage4 说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.c ...

随机推荐

  1. mysql中查看视图的元数据?

    需求描述: 查看视图的元数据的方法. 操作过程: 1.通过查看information_schema数据库下的views表来查看视图的定义语句 mysql> select definer,view ...

  2. go语言之PLAN9汇编

    http://blog.studygolang.com/2013/05/asm_and_plan9_asm/ https://lrita.github.io/2017/12/12/golang-asm ...

  3. 用highcharts展现你的数据

    摘要: 前面已经分享过图表插件,今天在来将下如何使用highcharts来绘制图表.highcharts支持在线定制,你可以选择你所需要的模块,然后点击build就会生成一个js文件链接,右键保存到本 ...

  4. it码农之心灵鸡汤(一)

    到底该怎么面对工作,到底怎么面临人生.到底怎么面临青春,对于打工的人来说这些一直都是心中一直无法解惑的谜团. 对于人们怎样看待工作,以前华为创始人任正非说过:非常多人问我,来公司工作有没有双休?需不须 ...

  5. PMP用语集

    AC actual cost 实际成本 ACWP actual cost of work performed 已完工作实际成本 BAC budget at completion 完工预算 BCWP b ...

  6. ios开发之--理解NSStringDrawingOptions每个选项的用法与意义

    typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) { NSStringDrawingUsesLineFragmentOrigin = < ...

  7. 消息中间件activemq-5.14.1安全验证配置

    activemq分为控制端和客户端,下面分别介绍安全认证配置方法. 1.控制端安全配置 (1). ActiveMQ目录conf下找到jetty.xml: <bean id="secur ...

  8. Ubuntu 13.10 下安装搜狗输入法

    1.卸载ibus输入法: sudo apt-get remove ibus     sudo为取得root权限的意思,Ubuntu系统默认root账户关闭,很多操作需要取得root     权限才可以 ...

  9. [Windows] Windows 8.1 取消在任务栏显示应用商店的应用

  10. 在recycler中写的布局不起作用

    把 LinearLayout 改成 RelativeLayout   ok了 创建的两种方式 1.LayoutInflater.from(parent.getContext()).inflate(R. ...