注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

docker.io在ubuntu下的应用参考  

2014-10-09 00:18:20|  分类: linux分布式运算 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

          除xen/kvm/vm/virtualbox之外,另外一种轻型虚拟化方法就是所谓的Linux容器(LXC),它提供了操作系统级别的虚拟化。由于不存在运行虚拟机带来的开销,LXC让用户可以在 轻型容器沙盒里面运行标准Linux操作系统的多个实例。如果你搭建一个可复制的开发/测试环境,或者在安全沙盒里面部署应用程序,容器就派得上大用场。

         Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。这应该算得上go语言最大规模的一次成功应用,当然作为并发语言工具,Docker在多核心系统下的表现肯定让人期盼。

        docker设计思想:docker依赖于cgroup,其应用交付运行环境可理解海运环境:其中OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木 组合,并且在最顶端署上自己的名字(最后个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。

         docker的安全:

         Docker就是为了便于部署Linux容器而开发的这样一款开源工具。Docker正迅速成为容器技术方面的一项事实上的标准,已经被诸如Ubuntu和红帽之类的各大Linux发行版所采用。

          本演示如何在Ubuntu 14.04上,借助Docker管理Linux容器。请注意:对Ubuntu的早期版本而言,操作步骤可能略有不同。眼下,Ubuntu上可用的Docker程序包只支持64位系统。想在32位机器上运行它,你就要利用源代码构建32位版本的Docker(详见这里)。

安装Docker

借助apt-get命令,安装Docker是件轻而易举的事。

  1. $ sudo apt-get install docker.io 

      为了允许非根用户也可以运行Docker,将你自己添加到docker群组。下面这个命令会允许当前用户运行Docker,无需根用户权限。

  1. $ sudo usermod -a -G docker $USER 

       退出,然后重新登录,以激活群组成员的变化。

下一步,编辑Docker配置文件,以便更新Docker二进制代码的位置。

  1. $ sudo vi /etc/default/docker.io 
  2. DOCKER="/usr/bin/docker.io" 

重启Docker服务。

  1. $ sudo service docker.io restart 

管理Docker容器

        如果你想启动Ubuntu操作系统的一个新的Docker容器,首先需要获取Ubuntu Docker映像文件。下面这个命令会通过网络下载Docker映像文件。

  1. $ docker pull ubuntu 

你可以以一种交互模式来开启Ubuntu Docker,如下所示。最后一个参数“/bin/bash”是一旦启动就将在容器里面执行的命令,这里是一个简单的bash外壳命令。

  1. $ docker run -i -t ubuntu /bin/bash 

      上述命令会立即启动一个Ubuntu容器(这正是容器的魅力所在!),并为你提供容器里面的外壳提示符。这时候,你应该能够访问沙盒环境里面的标准的Ubuntu操作系统了。

docker.io在ubuntu下的应用参考 - itoedr - itoedr的it学苑
 

        想退出Docker容器,在容器里面的提示符处键入“exit”。

        你可以启动不同形式的容器。比如,想启动Fedora容器,请执行下面这个命令:

  1. $ docker.io run -i -t fedora /bin/bash 

        如果本地没有Fedora Docker映像文件,该命令就会首先自动下载映像文件,然后启动Docker。

docker.io在ubuntu下的应用参考 - itoedr - itoedr的it学苑
            如果你想启动采用某个发行版版本的容器,也可以这么做。比如说,想启动Ubuntu 13.04 Docker,请执行下面这个命令:
  1. $ docker.io run -i -t ubuntu:13.04 /bin/bash
  2. $ docker run -i -t ubuntu:15.04 /bin/bash #以往docker.io命令已改变为docker了。
docker.io在ubuntu下的应用参考 - itoedr - itoedr的it学苑
 在ubuntu1504环境中运行一个新的ubuntu1504的容器的例子
看到运行环境已经与宿主机不一样了,看到的内存环境是一个新的干净环境。
       附:第一次执行一介新容器时,系统会自动下载相应资源来供使用。下面是新生成ubuntu 14.04的例子:                    docker.io在ubuntu下的应用参考 - itoedr - itoedr的it学苑      
第一次运行一个新容器时,docker会前往下载其运行环境工具


容器网络

         Docker使用Linux网桥将容器彼此互联起来,并将它们连接到外部网络。安装了Docker后,你应该会看到默认情况下自动组建的docker0 Linux网桥。你创建的每个容器都将连接到docker0网桥接口。

docker.io在ubuntu下的应用参考 - itoedr - itoedr的it学苑 

自定义Linux网桥

       如果你想,也可以使用自定义Linux网桥将诸容器互联起来。为此,你可以建立一个自定义网桥,并对它进行配置,如下所示。你可以为该网桥分配一个单独的子网,并且从子网为Docker分配IP地址。我会使用10.0.0.0/24作为Docker子网。

  1. $ sudo apt-get install bridge-utils 
  2. $ sudo brctl addbr br0 
  3. $ sudo ifconfig br0 10.0.0.1 netmask 255.255.255.0 

      想让Docker使用自定义网桥,将“-b=br0”添加到/etc/default/docker.io中的DOCKER_OPTS变量,然后重启Docker服务。

  1. $ sudo service docker.io restart 

      至此,任何新的容器都会连接到br0,其IP地址会自动从10.0.0.0/24来分配。

其他定制

         还有另外几种方法可以定制Docker的默认网络设置,主要是通过改动/etc/default/docker.io中的DOCKER_OPTS变量来实现。

  • “-dns 8.8.8.8 -dns 8.8.4.4”:指定容器使用的DNS服务器。
  • “-icc=false”:让诸容器彼此隔离开来。

故障排查

1. 运行docker.io命令时,你会遇到下面这个错误。

  1. dial unix /var/run/docker.sock: no such file or directory(没有此类文件或目录) 

出现这个错误,可能是由于Docker守护程序没在运行。检查Docker守护程序的状态,确保先启动它。

  1. $ sudo service docker.io  status 
  2. $ sudo service docker.io  start
************
附:
************

ubuntu 14.04安装docker

sudo apt-get update
sudo apt-get install 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
sudo apt-get install apt-transport-https
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb https://get.docker.io/ubuntu docker main  > /etc/apt/sources.list.d/docker.list"sudo apt-get update
sudo apt-get install lxc-docker

******************************
附:docker.io下实现安全隔离一种方案
******************************
        Docker镜像能够嵌套来提供该KVM虚拟层。

  评论这张
 
阅读(350)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017