我在Docker容器中创建了一个Dockerized应用程序。我打算让应用程序能够从我们的HDFS访问文件。 Docker镜像将部署在我们通过Marathon-Mesos安装HDFS的同一群集上。
以下是要发布到Marathon的json。看来我的应用程序能够在HDFS中读写文件。有人可以对此安全性发表评论吗?我的应用程序更改的文件是否也在HDFS中正确更改了?我用Google搜索并没有找到任何类似的方法......
{
"id": "/ipython-test",
"cmd": null,
"cpus": 1,
"mem": 1024,
"disk": 0,
"instances": 1,
"container": {
"type": "DOCKER",
"volumes": [
{
"containerPath": "/home",
"hostPath": "/hadoop/hdfs-mount",
"mode": "RW"
}
],
"docker": {
"image": "my/image",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 8888,
"hostPort": 0,
"servicePort": 10061,
"protocol": "tcp",
}
],
"privileged": false,
"parameters": [],
"forcePullImage": true
}
},
"portDefinitions": [
{
"port": 10061,
"protocol": "tcp",
"labels": {}
}
]
}
答案 0 :(得分:1)
您可以查看Docker volume docs。
基本上,app.json中的volumes
定义会触发带有标志-v /hadoop/hdfs-mount:/home:RW
的Docker镜像的启动,这意味着主机路径将被映射到Docker容器{{1}在读写模式下。
如果您通过SSH连接到运行应用程序的节点并执行/home
,您应该能够验证这一点。
另见