在我的设置中,我们使用Amazon基础设施启动码头容器。我知道码头正在运行的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>发布于 2016-05-13 21:37:57
正如这一讨论中提到的
您将无法获得完整的命令,包括卷、端口映射和其他传递给docker的选项,这些选项将在一行中从docker检查中运行。 您必须从从docker检查返回的json中提取此信息,并对所使用的完整docker run命令进行框架化。
例如,这个要点表明
# 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更完整的解决方案。
https://stackoverflow.com/questions/37219115
复制相似问题