docker - 访问在DC/OS Marathon Pod中启动的容器

标签 docker marathon pod dcos

使用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/

相关文章:

port - 端口和服务端口的区别?

kubernetes - Prometheus没有收集Pod指标

docker - Mesos Slave无法创建容器器

docker - 领事没有注销僵尸服务

kubernetes - Pod到Pod的通信在kubernetes中不起作用

kubernetes - 没有相关部署的Kubernetes Pod的生产用途是什么?

docker - 错误 : unsatisfiable constraints - on php:7-fpm-alpine

docker-compose 在另一个目录中运行入口点脚本

mongodb - Kubernetes 杀死 Mongo 容器

nginx - 将 Kubernetes 与 Artifactory/Nginx 代理一起使用