当我在容器中时,我想知道docker的版本。
我知道/proc/self/cgroup
可以告诉我是否在容器中。但是版本呢?
感谢任何提示!
答案 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"