如何在容器中获取Docker版本?

时间:2019-11-11 09:04:58

标签: docker containers

当我在容器中时,我想知道docker的版本。

我知道/proc/self/cgroup可以告诉我是否在容器中。但是版本呢?

感谢任何提示!

3 个答案:

答案 0 :(得分:1)

当您位于容器中时,可以在主机上执行命令。

ssh -l ${USERNAME} ${HOSTNAME} "docker -v"

答案 1 :(得分:1)

您可以从容器内部使用docker api查询docker引擎https://docs.docker.com/develop/sdk/,尤其是可以使用此端点https://docs.docker.com/engine/api/v1.30/#operation/SystemVersion

答案 2 :(得分:0)

我建议的第一个也是安全的方法是将docker版本作为环境变量传递给容器。

docker run -e DOCKER_VERSION="$(docker -v)" -it --rm alpine sh -c "echo \$DOCKER_VERSION"

第二种方法可以是mount host docker-socket,但是您应该了解risk of docker-socket只是为了获取docker版本。

docker run --rm -it  -v /var/run/docker.sock:/var/run/docker.sock alpine ash -c "apk add --no-cache curl && curl --unix-socket /var/run/docker.sock http://localhost/version"