使用DC / OS文档中的示例,如果我使用以下定义启动Pod,则可以看到Pod已成功部署。

{
   "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马拉松pod列表将显示以下内容:
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容器?

例如,如果我正在运行马拉松应用程序,则可以进入正在运行任务的代理节点,然后通过运行 docker exec -it container_id bash 来访问容器。

运行 docker ps 时,我在代理节点上看不到任何容器,大概是因为Pod使用通用容器运行时(UCR),所以我看不到如何连接到Pod中启动的容器。

最佳答案

您可以使用dcos任务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

关于docker - 访问在DC/OS Marathon Pod中启动的容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48840857/

10-12 22:16
查看更多