Amazon ec2 来自正在运行的docker/process的docker命令

Amazon ec2 来自正在运行的docker/process的docker命令,amazon-ec2,docker,Amazon Ec2,Docker,在我的设置中,我们使用Amazon ECS基础设施启动docker容器。我知道docker运行的EC2机器(主机),可以看到容器id 有了这些信息,我是否可以知道用于运行容器的docker命令是如何运行的 例如 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED

在我的设置中,我们使用Amazon ECS基础设施启动docker容器。我知道docker运行的EC2机器(主机),可以看到容器id

有了这些信息,我是否可以知道用于运行容器的docker命令是如何运行的

例如

$ 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>
sudo docker运行
如中所述:

您无法从docker inspect在一行中获得传递给docker run的完整命令,包括卷、端口映射和其他选项。
您必须从docker inspect返回的json中提取此信息,并构建所使用的完整docker run命令的框架

例如:

这仍然不完整:您还需要:

  • {{.VolumesFrom}}
  • {{.Volumes}
  • {{.HostConfig.links}
  • 还有很多其他的

查看更多更完整的解决方案。

您可以运行
sudo docker inspect
查看详细信息。谢谢!。这非常有帮助。
# 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"
}