Docker与应用部署

简介

Docker是dotCloud公司开源的一个实现轻量级的操作系统虚拟化解决方案。与传统虚拟机不一样的是容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

对比传统主机

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

基本概念

  • 镜像

    Docker 镜像就是一个只读的模板。一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

  • 容器

    Docker 利用容器来运行应用。
    容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
    可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

  • 仓库

    仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
    仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

Docker Hub: Docker Hub
Daocloud: Daocloud

安装使用

Linux

1
curl -sSL https://get.daocloud.io/docker | sh

Windows

1
wget https://get.daocloud.io/toolbox/windows

Mac OS

1
wget https://get.daocloud.io/toolbox/mac

使用 docker-machine

1
docker-machine

安装 Docker Compose

1
2
curl -L https://get.daocloud.io/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

镜像

1. 获取镜像

1
docker pull ubuntu:12.04

2. 列出本地镜像

1
docker images

3. 创建镜像

1.利用 Dockerfile 来创建镜像

容器

仓库