Docker技术入门与实战学习笔记(一)

一 , Docker简介

     docker最初是dotcloud公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,基于dotcloud公司多年云服务技术的革新,2013年3月 apache2.0开源。源码托管于github上面。

     docker使用Google公司推出Go语言开发实现,基于linux内核的cgroup,namespace,以及AUFS类的Union FS等技术开发实现,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其他的隔离的进程,因此称其为容器。最初实现基于LXC,从0.7以后去除LXC,使用自行开发的libcontainer,1.11开始使用runC和containerd。

二, Docker与传统虚拟化的区别

         同样是虚拟化,如下图所示,传统虚拟化在运行环境之上先虚拟化一套硬件,然后在硬件之上运行完成的操作系统,系统之上运行应用服务。而Docker只是在原有系统里面隔离一个单独的空间,没有虚拟化硬件所以应用进程直接运行在宿主机的内核里,这使得docker更加轻量级。

                                                                                       传统虚拟化(图片来源网络,侵删)

               

                                                                                 Docker虚拟化(图片来源网络,侵删)

         由于docker不许呀进行硬件虚拟化以及运行完整的操作系统等尔瓦埃开销,docker对系统资源的利用率更高。无论是应用执行速度,内存耗损,或者文件存储速度,都要比传统虚拟化技术高效。相比虚拟机技术,一个相同配置主机往往可以运行更多数量的应用。不需要运行完整的系统,因此可以做到秒级甚至毫秒级的启动时间。

         由于使用分层存储以及镜像的技术,所需要的运行环境一层一层构建在镜像中,使得应用重复部分的复用更加容易,应用的迁移部署更加简单,一次构建,多处运行,减少了运维人员的工作复杂度。

         总结:

        

三, 基本概念

        Docker包括三个基本概念

         1)镜像

               提到镜像,有对操作系统有一定认知的都知道,镜像是一个压缩的ISO文件,里面包含操作系统运行所需要的运行环境以及库文件,配置文件等等。而docker镜像相当于是一个root文件系统,除了提供容器运行所需要的程序,库,资源,配置等文件还包括运行时准备的一些配置参数(匿名卷,环境变量,用户等)。镜像不包含任何动态数据,在构建完成之后本层镜像就不会被改变。

              docker镜像在设计之时,就充分使用Union FS 技术,并被设计为分层存储的架构。所以与传统意义上的镜像有着很大不同,它并非体现为一个打包的文件,而是由一组文件系统组成,或者说由多层文件系统联合组成。

               镜像构建时,由下网上一层一层构建,每一层构建完成后就不会发生改变,后一层上对上一层的改变都发生在本本层。删除上一层文件也只是标记删除,并不会影响上一层。所以,构建镜像时,每一层尽量包含本层需要的东西,其他额外的东西应该在构建结束前清理掉。

        2)容器

          容器的实质是进程,是镜像的实例化, 但与直接在宿主执行的进程不同,容器进程运行与属于自己独立的命名空间,因此容器可以拥有自己的root文件系统,自己的网络配置,自己的进程空间。实质是进程,所以拥有进程的所有特性,可以被创建,启动,暂停,停止,删除等。 

           由于镜像的特殊架构,使用分层存储,容器运行时,以镜像为基础层,在基础层上,创建当前容器存储层,相当于进程的栈空间。容器存储层和容器一样,容器进程退出时,其对应的容器存储层也随之消亡。所以容器运行时产生的任何数据都不应放在容器存储层,所有文件写入操作都应该使用数据卷,或者绑定宿主目录,直接对宿主发生读写。

      3)仓库

          仓库保存定义好的镜像,提供保存,下载,版本管理等等功能。通常一个docker Registry 服务包含多个仓库,每个仓库可以包含多个标签tag,每个标签对应一个镜像。若包含的镜像相同版本不同,通常以标签分别标识,我们可以通过<仓库名>:<标签>指定具体那个镜像。如果不给出标签默认以latest作为默认标签。

          公开的仓库服务有很多,默认使用官方的Docker hub ,它拥有大量高质量的官方镜像,此外还有coreOs的Quay.io,google 的Goolge Container Registry(K8S),国内访问可能会比较慢,所以国内的云服务商提供了一些针对Docker Hub的镜像服务,常见有:阿里云加速器,DaoCloud 加速器,灵雀云加速器。

            国内也有类似Docker Hub的仓库服务。比如时速运镜像仓库,网易云镜像服务,DaoCloud镜像市场,阿里云镜像库等。当然有公开的仓库服务,自己也可以搭建私库,常见使用sonatype Nexus 以及 WMWare Harbor搭建私库,有时间学习一波再来更新。

四,Docker安装

        官方网站上有各种环境下的安装指南,这里就不详细展开,粗略的介绍两种环境下相对简单的安装方法。

     1)Linux (Ubuntu)

         系统要求:

            docker目前支持Ubuntu最低版本为12.04LTS,推荐使用14.04LTS或更高版本。

            操作系统 64位

            内核版本不低于3.10,越新越好,老版本可能有些功能支持不了,或者不稳定。

       (1)自动化安装

             docker提供一套自动化安装脚本,命令:  curl -sSL https://get.docker.com/ | sh

             由于墙可能会出现某些下载错误的情况。国内一些云服务商提供了这个脚本的修改版本

             阿里云提供的自动化安装脚本  命令:curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/
docker-engine/internet | sh -

             DaoCloud提供的自动化安装脚本 命令:curl -sSL https://get.daocloud.io/docker | sh

        (2)手动安装

             由于docker 使用 Union FS 技术,所以,需要开启系统对 AUFS的内核驱动。此驱动属于可选的内核模块的一部分,如果没有安装可以使用命令下载安装 。命令:$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

              安装docker软件包

               1,配置APT源

                  官网源使用HTTPS确保下载过程不被篡改,所以先安装HTTPS服务以及CA证书。

                   命令:$ sudo apt-get update

                              $ sudo apt-get install apt-transport-https ca-certificates

                              $ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80

                               --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

             然后我们需要想source.list添加Docker软件源,下面列出了不同的Ubuntu和Debian版本对应的APT源。

            APT源添加到source.list(将其中的 <REPO> 替换为上表的值):

             命令:$ echo "<REPO>" | sudo tee /etc/apt/sources.list.d/docker.list

              添加成功后更新apt软件包缓存:$ sudo apt-get update

         2,安装Docker

            命令: $ sudo apt-get install docker-engine

        3,启动docker

            命令: $ sudo service docker start

         4,建立docker用户组

            命令:$ sudo groupadd docker

         5, 加入当前用户到docker用户组

           命令: $ sudo usermod -aG docker $USER

    2)window 安装docker 

       使用docker toolbox 安装docker

        安装要求:

        1,win7以上64位系统

        2,虚拟化支持

                         

 

 

1,下载docker toolbox   https://www.docker.com/products/docker-toolbox

 2,双击安装包进行安装Docker Toolbox

  一路next安装成功后打开Docker Quickstart Terminal图标,启动一个终端

启动完成之后就是一个bash命令行。输入docker version 查看docker运行版本等信息,安装就完成了。

 

参考文档:    Docker技术入门与实战第二版

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值