Я использую марафон для развертывания моего приложения-контейнера node.js для докеров. Мой марафон приложение спецификация выглядит следующим образом:Развертывание контейнеризованного приложения node.JS через mesos-marathon
{
"id": "<some-name>",
"cmd": null,
"cpus": 1,
"mem": 2800,
"disk": 30720,
"instances": 1,
"container": {
"docker": {
"image": "<some-docker-registry-IP>:5000/<repo>",
"network": "BRIDGE",
"privileged": true,
"forcePullImage": true,
"parameters": [
{
"key": "net",
"value": "host"
}
],
"portMappings": [
{
"containerPort": <some-port>,
"hostPort": <some-port>,
"protocol": "tcp",
"name": null
}
]
},
"type": "DOCKER"
}
}
Однако проблема в том, что это приводит к перезапуску моему сервера, где приложение развернуто, когда он выходит из памяти. Мне нужны мои услуги для прослушивания частного IP-адреса хост-машины, и именно поэтому я использую --net=host
.
Можно ли просто убить задачу, освобождая память, чтобы марафон мог повторно запустить ее без перезапуска/остановки сервера? Или есть ли другой способ сделать контейнер Docker маршрутизируемым во внешний мир без использования --net=host
?