Доступ к контейнерам, запущенным в DC/OS Marathon Pod

Используя пример из документации DC/OS, если я запускаю модуль, используя следующее определение, я вижу, что модуль был успешно развернут.

{
   "id":"/pod-with-endpoint",
   "containers":[
      {
         "name":"simple-docker",
         "resources":{
            "cpus":1,
            "mem":128,
            "disk":0,
            "gpus":0
         },
         "image":{
            "kind":"DOCKER",
            "id":"nginx"
         },
         "endpoints":[
            {
               "name":"web",
               "containerPort":80,
               "protocol":[
                  "http"
               ]
            }
         ]
      }
   ],
   "networks":[
      {
         "mode":"container"
      }
   ]
}

При запуске списка модулей dcos marathon отображается следующее:

ID+TASKS            INSTANCES  VERSION                   STATUS  STATUS SINCE             WAITING
/pod-with-endpoint      1      2018-02-17T11:10:50.047Z  STABLE  2018-02-17T11:10:51.43Z  False
 |-simple-docker

Как я могу получить доступ к контейнеру nginx?

Например, если бы я запускал приложение-марафон, я мог бы подключиться по SSH к узлу агента, на котором выполнялась задача, а затем получить доступ к контейнеру, запустив docker exec -it container_id bash.

Я не вижу никаких контейнеров на узлах агента при запуске docker ps, предположительно потому, что модули используют универсальную среду выполнения контейнеров (UCR), поэтому я не вижу, как я могу подключиться к контейнерам, запущенным в стручок


person user9370638    schedule 17.02.2018    source источник


Ответы (1)


Для этого вы можете использовать dcos task cli:

 # Get the dcos task ID 
 dcos task [task_name]

 # Run task exec with task id and command to run
 dcos task exec [--interactive --tty] <task_id> <cmd> [<args>...]

 # Example
 dcos task exec --interactive --tty hello-world.df11367a-664354-11e8-8e5a-d6f1851c7c1c bash
person Parvez Kazi    schedule 30.05.2018