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