我正在尝试在我的基础架构上启动 rstudio。
如果我做 :
sudo docker run -d -p 8787:8787 192.168.0.38:5000/rocker/rstudio
然后我让 rstudio 在我的服务器上运行良好。
但是我有 mesos 和 marathon,并且想用这个 docker 命令制作一个 Marathon 的应用程序。
我找不到正确映射端口的方法。
我试过 :
{
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "192.168.0.38:5000/rocker/rstudio",
"network": "HOST",
"privileged": true,
"parameters": [
{
"key": "p",
"value": "8787:8787"
}
],
"forcePullImage": true
}
}
希望我会工作,但它永远不会开始。
我试过:
{
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "192.168.0.38:5000/rocker/rstudio",
"network": "HOST",
"portMappings": [
{
"containerPort": 8787,
"hostPort": 8787,
"servicePort": 10003,
"protocol": "tcp"
}
],
"privileged": true,
"parameters": [],
"forcePullImage": true
}
}
这不是更好。
你会建议我使用哪个 json 来转换这个工作 docker 命令:
sudo docker run -d -p 8787:8787 192.168.0.38:5000/rocker/rstudio
??
最佳答案
端口映射(与 Docker 一样)仅与 BRIDGE
相关组网方式,另见Marathon doc .在您的情况下,以下内容应该有效:
...
"container": {
"type": "DOCKER",
"docker": {
"network": "BRIDGE",
"portMappings": [
{
"protocol": "tcp",
"containerPort": 8787,
"hostPort": 8787
}
]
}
},
...
Mesosphere doc
关于Docker + 马拉松 : how to do a port mapping ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707732/