Docker的介绍

容器的概念

说到Docker首先要解释的一个概念就是容器。什么是容器(container)?容器技术并不是一个全新的概念,它又称为容器虚拟化。虚拟化技术目前主要有硬件虚拟化、半虚拟化、操作系统虚拟化等。
所谓容器,顾名思义就是来放东西的道具。大可把容器理解为一个沙盒,每个容器是独立的,容器间可以相互通信。

Docker简述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。
Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初是dotCloud公司发起。

Docker通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。这里应用组件,即可以是Web应用,也可以是一套数据库服务,甚至是一个操作系统或编译器。

Docker由镜像(Image)、容器(Container)、仓库(Repository) 三大核心组成。

  1. 镜像
    Docker镜像(image)类似于虚拟机镜像。
    例如:一个镜像可以只包含一个完整的Centos操作系统环境,可以把它称为一个Centos镜像,镜像也可以安装了Nginx应用程序(或者用户需要的其他软件),可以把它称为一个Nginx镜像。

  2. 容器
    可以把容器看做是一个简易的Linux系统环境,以及运行在其中的应用程序打包而成的一个箱子。Docker利用容器这个箱子来隔离和运行应用镜像。

  3. 仓库
    Docker仓库(Repostory)类似于代码的仓库。是Docker用来集中存放镜像文件的场所。

资源隔离

容器是如何实现进程、文件、网络等资源的隔离呢?

  1. Namespace
    例如,容器进程启动时,只要启用了 Mount Namespace,并将自己打包的文件系统挂载好,就可以实现每个容器仅看到自己的文件,实现文件资源的隔离。总之,Docker 守护进程创建容器实例时都启用了相应的 Namespace,使得容器中的进程都处于一种隔离的运行环境之中。
  2. Cgroups
    通过 Namespace,容器实现了资源的隔离,从而每个容器看起来都像是拥有自己独立的运行环境。注意,只是看起来。因为容器使用 cpu、内存等并不受限制,假如某个容器占用这些资源过高,就可能会造成其它容器运行迟缓甚至异常,这就需要 Cgroups 了。
    cgroups 的全称是 control groups,是 Linux 内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,可以对 cpu,内存等资源实现精细化的控制。
    在docker 中,可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。

网络隔离

每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址。

在知道docker是什么之后,我们来了解一下怎么使用它。

Docker的安装

  1. Docker在Ubuntu上的安装
    Ubuntu14.04及以上版本的系统官方软件源中已经自带了Docker包,可以直接安装

     $sudo apt-get update
     $sudo apt-get install -y docker.io
     $sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
     $sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
    
  2. Docker在CentOS上的安装
    CentOS7 系统CentOS-Extras库中已带 Docker,可以直接安装:

     $ sudo yum install docker
    

    安装之后启动 Docker 服务,并让它随系统启动自动加载。

     $ sudo service docker start
     $ sudo chkconfig docker on
    

创建镜像

1.基于已有的镜像容器创建
docker commit [options] container[repository]

  option:-a, --author=“” 作者信息

  -m,--message=“” 提交信息

  -p,  --pause=true 提交时暂停容器运行

2.基于本地模板导入创建

 docker load < ***.tar  --本地模板文件tar

3.基于Dockerfile文件构建镜像

  docker build –t image-name basedir

创建 |启动容器

docker  create image 创建的容器是停止状态

docker  start/stopcontainer_id启动/停止容器

docker  run image创建并启动容器
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值