简介

https://www.docker.com/

Docker: world’s leading software containerization platform*.

VM vs. Docket:

docker 追加白名单 docker设置白名单_docker

docker 追加白名单 docker设置白名单_虚拟机_02

Docker基于LXC(Linux容器),在LXC的基础上进一步封装,使得操作更简单,就像操作一个轻量级的虚拟机一样。

相比虚拟机的优势:

  • 启动更快,可以在秒级启动
  • 对系统的资源利用率更高(在内核级别进行虚拟化)
  • 更快速的交付和部署
  • 更高效的虚拟化(不需要hypervisor支持)
  • 更容易迁移和扩展(镜像)
  • 更容易管理

docker 追加白名单 docker设置白名单_docker_03

三个Docker基本概念

  • Image(镜像):类似于模板,例如包含完整的CentOS系统,并安装了JRE。镜像用于创建Docker容器。创建、修改镜像都很简单。
  • Container(容器):Docker利用容器来运行应用,可以从镜像中创建运行实例,可以被启动、停止、删除,每个容器相互隔离。
  • Repository(仓库): 几种存放Docker镜像的场所。最大的仓库未Dockey Hub,国内有时速云、网易云等。一个仓库包含多个镜像。仓库可以分为私有和共有。私有的仓库可以push和pull。仓库注册服务器(Registry)往往包含多个仓库。

CentOS安装Docker

要求64位操作系统,内核至少为3.10.
目前支持CentOS 6.5以后的版本,推荐使用CentOS 7

添加yum软件源,更新:

安装docker-engine:

sudo yum install docker-io-y

启动docker

serveice docker start
serveice docker staus
# docker (pid  1535) is running...

配置Docker跟随系统启动:

sudo chkconfig docker on

运行hello world:

docker run hello-world

此时因为本地没有该镜像,因此会去远程仓库下载:

docker 追加白名单 docker设置白名单_Docker_04

查看当前可用的镜像:

docker images

docker 追加白名单 docker设置白名单_docker_05

docker ps 命令查看当前的容器:

docker ps -l

下载个Ubuntu镜像:

docket pull ubuntu:12.94

运行容器:

docker run -t -i ubuntu:12.94 cat /etc/debian_version

可以两个命名合并:

docker run  --name myubuntu ubuntu:12.94 cat /etc/debian_version

其中–name参数给容器指定一个名称,方便后续操作(例如start,stat,stop)。

交互式进入ubuntu:

docker run -it ubuntu /bin/bash

docker 追加白名单 docker设置白名单_虚拟机_06

使用Dockerfile创建镜像

Dockerfile基本语法:

  • #:注释
  • From:指定基础镜像
  • RUN:运行命令,例如yum,或者apt-get安装软件

例子:

# my first image
FROM ubuntu:14.04
MAINTAINER Brandon 
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra

编写完Dockerfile之后,使用docker build命令创建镜像:

sudo docket build -t="ouruser/sinatra:v2" .

-t参数指定tag,注意后面的”.”,表示dockerfile在当前目录下。

镜像是一层层(layer)组成的

UnionFS

导入/导出镜像到本地:

  • docker save: 导出镜像到本地文件
  • docker load: 从本地文件导入到本地镜像库
  • docker rmi: 移除本地镜像库