docker mesosphere marathon - невозможно увидеть запущенный процесс внутри контейнера докеров

Я новичок в мезо и марафонском пространстве. У меня есть мезо-рабы, работающие с моими докер-контейнерами. Я использую марафон для создания мезо-задачи. Вот мой простой файл json:

{
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "tomcat:8.0"
    }
  },
  "id": "tomcat",
  "instances": 1,
  "cpus": 0.5,
  "mem": 512,
  "uris": [],
  "cmd": "while sleep 10; do date -u +%T; done"
}

Я использую curl и создаю почтовый запрос с помощью марафона. Мой док-контейнер успешно развернут в соответствии с марафоном. До сих пор все в порядке. Теперь я использую ssh в свой контейнер докеров, используя команду

sudo docker exec -i -t / bin / bash

Я не вижу никаких журналов, созданных для tomcat. Я чувствую, что мой кот не запустился. Запуск telnet 8080 завершается ошибкой, поскольку telnet недоступен в контейнере. когда я запускаю ps -aef, я вижу, что доступно следующее: «/ bin / sh -c while sleep 10; do date -u +% T; done». Однако я все еще не могу сказать, запущен ли tomcat. Кто-нибудь сталкивался с такой проблемой ... любые указатели для ее отладки.

Спасибо Ашиш


person ashishjain    schedule 09.02.2015    source источник
comment
Я считаю, что вам нужно использовать сопоставление портов в вашем файле JSON, чтобы вы могли запускать сервер Tomcat? Вы также можете попробовать netstat -an | grep 8080.   -  person Hans    schedule 10.02.2015
comment
спасибо Хан за вашу помощь   -  person ashishjain    schedule 10.02.2015
comment
docker exec не использует SSH для входа в контейнер. Он использует пространства имен ядра для запуска нового процесса внутри контейнера, в данном случае новой оболочки.   -  person Markus Rexhepi-Lindberg    schedule 20.10.2015


Ответы (1)


В вашем файле JSON у вас должно быть "cmd": "" (последняя строка), иначе команда контейнера докеров будет переопределена.

person Céline Aussourd    schedule 09.02.2015