背景信息
环境信息:Mesos+marathon+docker(部署在一台服务器,包括mesos-master、mesos-slave、docker、marathon)
演示操作:通过向marathon提交任务,实现一个docker容器的调度执行
操作步骤
1、执行docker pull nginx命令拉取nginx镜像
[root@bigdata01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest 9e7424e5dbae 13 days ago 108.5 MB
2、通过curl启动一个marathon任务
curl -X POST -H "Content-type: application/json" 192.168.209.10:8080/v2/apps -d '{
"id": "nginx3",
"cpus": 0.2,
"mem": 32,
"instances": 1,
"constraints": [["hostname", "UNIQUE"]],
"container": {
"type": "DOCKER",
"docker": {
"image": "docker.io/nginx",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 80,
"hostPort": 0,
"servicePort": 0,
"protocol": "tcp"
}
]
}
}
}'
3、在marathon UI检查任务的执行情况
4、在mesos上查看调度任务
5、查看docker容器
[root@bigdata01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5931b6a1717d docker.io/nginx "nginx -g 'daemon off" 43 seconds ago Up 41 seconds 0.0.0.0:31812->80/tcp mesos-4f02b030-2b47-48f0-bdcb-75c922828e53