我已经成功地部署了marathon/mesos应用程序,但是如果我添加了端口Map,它就不再工作了。
我的从属容器运行为:
docker run --privileged -v /data/docker/notebook:/notebook:rw -v /etc/localtime:/etc/localtime:ro --net=host -e NFS_PATH=$NFS_PATH -e IP=$IP -e RESOURCES=$RESOURCES -e ATTRIBUTES=$ATTRIBUTES -e HOSTNAME=$HOSTNAME -e MASTER=$MASTER -e SLAVE_PORT=$SLAVE_PORT -d -p 5151:5151 --name $CONTAINER_NAME $IMAGE_NAME
然后在从属容器中,我必须手动启动守护进程,因为出现一个奇怪的[time=“2015-10-17t12:27:40.963674511z”level=fatal msg=“error starting daemon:error initialization graphdriver:operation not allowed”]错误,所以我:
docker -d -D --insecure-registry=localhost:5000 -g /var/test
然后我将我在mesos上的奴隶视为一个工作资源,我可以在marathon上发布一些应用程序:
{
"id": "rstudiorocker2",
"container": {
"type" : "DOCKER",
"volumes" : [],
"docker" : {
"image" : "localhost:5000/rocker/rstudio",
"privileged" : true,
"parameters" : [],
"forcePullImage" : true
}
}
}
在这里,应用程序立即部署在从属服务器上。问题是rocker正在监听端口8787,我想在另一个端口上访问它,所以我尝试进行端口Map:
{
"id": "rstudiorocker",
"container": {
"type" : "DOCKER",
"volumes" : [],
"docker" : {
"image" : "192.168.0.38:5000/rocker/rstudio",
"privileged" : true,
"parameters" : [],
"forcePullImage" : true,
"network":"BRIDGE",
"portMappings": [
{ "containerPort": 8787,
"hostPort": 2036,
"protocol": "tcp" }
, { "containerPort": 8787,
"hostPort": 2036,
"protocol": "udp" }
]}
}
}
现在问题出现了:应用程序停留在“暂存”阶段,从未被部署(即使我先删除了所有其他应用程序):(会出什么问题?
1条答案
按热度按时间ppcbkaq51#
您已尝试两次Map同一个集装箱港口,这是marathon不允许的:
marathon将拒绝此配置,并显示如下消息
尝试更改其中一个containerport值,例如: