相关文章

也可以看看

逃离VMWare拥抱docker

 |   

Docker是一个开源项目,它是基于linux容器(LXC)等技术,旨在实现轻量级的操作系统虚拟化的一个解决方案。用户操作Docker的容器就像操作虚拟机一样,但是它比虚拟机更轻量更快速。

VMWare VS Docker

这里VMWare只是传统虚拟化方式的一个典型代表–虚拟机。传统方式是在硬件层面实现的,就像我们有时在新建虚拟机时出现这样的错误信息:

Error:
The virtual machine could not be started because the hypervisor is not running.

而解决这个问题的方法就是进入BIOS里面打开Hypervisor。这里的Hypervisor是所有传统虚拟化技术的核心。它运行于物理服务器和操作系统之间的中间的的软件层,允许多个操作系统和应用共享一套基础物理硬件。

相较于在硬件层面上实现的传统虚拟化技术,Docker是在操作系统层面上实现虚拟化的,它直接复用本地主机的操作系统。下面的两张图片能很好的诠释二者区别。

VMWare
Docker

作为一种新兴的虚拟化方式,Docker的突出的优势有如下三点:

  1. 秒级启动
  2. 对系统资源利用率很高,一台主机可以同时运行数千个Docker容器
  3. 容器除了运行其中的应用外,基本不消耗额外的系统资源。原因在于Docker容器中只安装配置对应的应用,它可以用最小最基本的内核镜像,用最精简的软件依赖。

总结见下表:
| 特性 | Docker | VMWare |
| :—-: | :—-: | :—–: |
| 启动 | 秒级 | 分钟级 |
| 硬盘使用 | MB级 | GB级 |
| 性能 |接近原生 | 弱于原生 |
|系统支持量|单机支持上千个|一般十几个|

Docker安装

Docker是基于LXC等技术的,所以linux系统对其的支持是不言而喻的。这里Docker运行的环境是Ubuntu系统。

  1. 升级内核 Docker需要的Ubuntu的内核版本要大于3.13。对于Ubuntu 14.04这个版本是不需要升级内核以及安装依赖软件,而之前的版本是需要升级内核的。升级脚本如下:

    1sudo apt-get update
    2sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
    3sudo reboot
    

    ``

  2. 通过源安装Docker

     1# 安装apt-transport-https支持
     2sudo apt-get install apt-transport-https
     3# 获取锁钥
     4sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
     5# 添加Docker源
     6sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
     7# 更新软件源仓库
     8sudo apt-get update
     9# 安装Docker
    10sudo apt-get install lxc-docker -y --force-yes
    

    ``

Docker配置

Docker的配置文件是 /etc/default/docker,里面可以设置Docker的启动路径,参数配置,代理以及临时目录设置。

  1. 使用代理

    1cat << EOF >> /etc/default/docker
    2export http_proxy="http://127.0.0.1:8080"
    3export https_proxy="http://127.0.0.1:8080"
    4EOF
    

    ``

  2. 改变docker进程监听的IP和端口

    1cat << EOF >> /etc/default/docker
    2DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:4243 --insecure-regis    try 127.0.0.1:5000"
    3EOF
    

    `` 附:Docker一键安装配置 install_docker.sh

Docker使用

  1. 镜像操作

     1# 获取注册服务器registry.hub.docker.com上的ubuntu镜像
     2sudo docker pull ubuntu:14.04
     3# 列出本地镜像
     4sudo docker images
     5# 启动docker容器
     6sudo docker run -it ubuntu:14.04 /bin/bash
     7# 提交已有镜像,获得新镜像id
     8sudo docker commit -m "commit information" -a "user information" original_docker_id repository:tag
     9# 从当前目录下的Dockerfile中生成镜像
    10sudo docker build -t="repository:tag" .
    11# 修改镜像标签
    12sudo docker tag image_id repostory:new_tag
    13# 从本地文件系统(容器快照)导入
    14sudo cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04
    15# 保存镜像
    16sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
    17# 载入镜像
    18sudo docker load < ubuntu_14.04.tar
    19# 上传镜像
    20sudo docker push repostory:tag
    21# 清理所有未打过标签的本地镜像
    22sudo docker rmi $(docker images --quiet --filter "dangling=true")
    

    `` 附:

    1. Dockerfile
    2. 本地文件系统导入镜像的下载: openvz的模板下载
  2. 容器操作

     1# 容器启动
     2## -t	让Docker分配一个终端Terminal并绑定容器的标准输入
     3## -i	让容器的标准输入保持打开(交互模式)
     4## -d	以守护态运行
     5sudo docker run -it ubuntu:14.04 /bin/bash
     6# 显示容器状态
     7sudo docker ps
     8# 获取容器的输出信息
     9sudo docker logs container_id
    10# 容器快照的导出
    11sudo docker export container_id
    12# 清理所有处于终止状态的容器
    13sudo docker rm $(docker ps -a -q)
    

    ``

  3. 仓库操作

    1# 查找官方仓库的镜像
    2sudo docker search ubuntu
    3# 创建私有仓库(官方registry镜像)
    4sudo docker run -d -p 5000:5000 registry
    5# 上传镜像到私有仓库
    6sudo docker push localhost:5000/image_id:tag
    

    ``

技术茶话会
< 前一篇 后一篇 >