2016-05-13 2 views
2

В моей установке мы запускаем контейнеры докеров, используя Amazon ECS Infrastructure. Я знаю машину EC2 (хост), где работает докер, и может видеть идентификатор контейнера.команда докера от работающего докера/процесса

С этой информацией, есть ли в любом случае, я могу понять, как команда докера, которая использовалась для запуска контейнера?

См., Например,

$ sudo docker ps 
CONTAINER ID  IMAGE                COMMAND    CREATED    STATUS    PORTS      NAMES 
d02739ac9a59  dockerhub.amazonaws.com/something "/script.sh" 32 minutes ago  Up 32 minutes         ecs-production 
cf47d404c6ba  amazon/amazon-ecs-agent:v1.7.1          "/agent"   About an hour ago Up About an hour 127.0.0.1:51678->51678/tcp ecs-agent 

У меня есть это. Я хочу знать, что было

sudo docker run <various configuration parameters> 
+1

Чтобы просмотреть детали, вы можете запустить 'sudo docker inspect '. –

ответ

3

Как уже упоминались в this discussion:

Вы не получите точную полную команду, включая объемы, сопоставления портов и другие параметры, передаваемых Docker работать с грузчика инспектировать в одна линия.
Вам нужно будет извлечь эту информацию из json, возвращенной из проверки докеров, и кадрировать всю используемую команду запуска докера.

Например, this gist suggests:

# Convert an existing docker container into a "docker run" command line. 
# 
# This is useful when trying to debug containers that have been created 
# by orchestration tools. 
# 
# Install jq: stedolan.github.io/jq/ 

function format_run() { 
    cid=$1 

    json=$(docker inspect $cid 2>&1) 

    # parse container info 
    entrypoint=$( echo $json | jq -r '.[0].Config.Entrypoint | join(" ")'   ) 
    envvars=$( echo $json | jq -r '(.[0].Config.Env | [" -e " + .[]] | join(""))' ) 
    image=$(  echo $json | jq -r .[0].Image          ) 
    cmd=$(  echo $json | jq -r '.[0].Config.Cmd | join(" ")'     ) 

    echo "docker run --entrypoint $entrypoint $envvars $image $cmd" 
} 

Это еще не завершен: вам нужно будет так:

  • {{.VolumesFrom}}
  • {{.Volumes}}
  • {{ .HostConfig.links}}
  • и многие другие

См. nexdrew/rekcod подробнее более полное решение.

+0

Спасибо !. Это было очень полезно. –

Смежные вопросы