[mesos]docker容器支持(Docker Containerizer)

[mesos]docker容器(Docker Containerizer)

原文链接:http://mesos.apache.org/documentation/latest/docker-containerizer/

Mesos 0.20.0添加支持发起Docker镜像和一些选项设置任务,并且我们计划添加更多的功能。

下面几节介绍为支持docker而改变的API描述和如何启动docker。

include/mesos/mesos.proto

启动(Setup)

为了从机器能使用Docker Containerizer,你需要在启动时添加一个容器参数

例如:mesos-slave –containerizers=docker,mesos

每个从机器都需要安装docker的客户端(version >= 1.0.0)。

如何使用Docker Containerizer(How do I use the Docker Containerizer?)

TaskInfo在0.20.0版本前仅支持设置一个能让任务执行bash命令的CommandInfo数据,或者是一个能发起任务自定义Executor的ExecutorInfo。

在0.20.0中,我们添加了ContainerInfo字段到TaskInfo 和 ExecutorInfo,这让像docker的容器可以被配置去执行任务或者执行器。

当把运行docker作为一个任务时,在TaskInfo中必须同时设置命令和container字段,因为这个命令将在创建docker镜像时候使用。ContainerInfo也应该有用来请求docker镜像的Docker 和 DockerInfo的类型。

当把运行docker作为一个执行器时,在TaskInfo中必须设置包含ContainerInfo的ExecutorInfo类型,ContainerInfo也应该有用来请求docker镜像的Docker 和 DockerInfo的类型。

Docker Containerizer做了什么(What does the Docker Containerizer do?)

Docker Containerizer被解析成了调用docker 客户端命令行执行添加、销毁操作的ask/Executor。

当Docker Containerizer作为发起任务操作时,步骤如下:

1.将所有CommandInfo中指定的文件放到沙盒中。

2.从远处仓库中获取docker镜像

3.按照DockerInfo配置运行docker镜像,并映射沙盒目录到docker容器中,后设置目录给MESOS_SANDBOX环境变量。

4.将docker日志打印到沙盒的stdout/stderr文件中。

5.docker将在container中等待发出的命令执行完成。

6.在container推出或者containerizer销毁是,停止并移除docker容器

Docker Containerizer创建的容器都以“mesos-”开头(例如:mesos-abcdefghji),并且设定以”mesos-“为前缀的容器都又slave管理,能自由停止和杀死容器。

当发起docker镜像是一个执行器时,唯一的不同是跳过发起命令执行器而仅获取docker执行器的pid。

提示:为了更容易运行一个docker镜像为一个执行器,在运行docker镜像时,我们当前默认设置到主机网络。

而且由于我们明确地在执行过程中推送镜像,如果镜像仅在本地安装而在执行远程仓库时不可用也会导致失败。

私有docker仓库(Private Docker repository)

对于从私有仓库运行镜像,这个私有仓库包括一个指向含有登陆信息的.dockercfg文件,这个.dockercfg将被推入沙盒,在Docker Containerizer设置HOME环境变量时指向沙盒,然后docker客户端就能自动读取这个配置文件了。

运行docker镜像的CommandInfo(CommandInfo to run Docker images)

一个docker镜像当前支持一个接入点、一个默认命令。

如果要用默认命令运行docker镜像(如:docker run image),CommandInfo的值就不能设定。如果设定一个值就会覆盖掉默认命令。

如果要使用已定义好的接入点,那么CommandInfo的shell选项必须设置为false,如果shell选项被设置为ture,Docker Containerizer将使用/bin/sh -c运行用户命令。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值