Как получить версию докера в контейнере? - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу знать версию докера, когда я нахожусь в контейнере.

Я знаю, что /proc/self/cgroup может сказать мне, если я в контейнере. Но как насчет версии?

Спасибо за любые советы!

Ответы [ 3 ]

1 голос
/ 11 ноября 2019

Вы можете использовать API докера внутри контейнера для запроса механизма докера https://docs.docker.com/develop/sdk/, в частности, вы можете использовать эту конечную точку https://docs.docker.com/engine/api/v1.30/#operation/SystemVersion

1 голос
/ 11 ноября 2019

Вы можете выполнить команду на хост-машине, находясь внутри контейнера.

ssh -l ${USERNAME} ${HOSTNAME} "docker -v"
0 голосов
/ 11 ноября 2019

Первый и безопасный подход , который я рекомендую, - передать версию докера в контейнер в качестве переменной среды.

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

Второй подход может быть mount host docker-socket , но вы должны знать об этом риске 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...