Verify the version of ubuntu running in a Docker container

别等时光非礼了梦想. 提交于 2019-12-13 12:24:45

问题


I have Docker Toolbox installed on windows 8.1 and I am creating an image based on ubuntu:latest (which should be 16.04). I want to make sure that my application is indeed run on 16.04. Here is my Dockerfile:

FROM ubuntu:latest
MAINTAINER xyz xyz@abc.com
COPY apt.conf /etc/apt/
RUN apt-get -y update 
RUN apt-get -y  install cmake
RUN mkdir /usr/local/
COPY folder /usr/local/
RUN mkdir /usr/local/build
CMD cd /usr/local/build
CMD cmake /usr/local/

Once the image is built, i try to run :

docker run image uname -r

But it always returns with 4.4.12 boot2docker

Now i know that boot2docker is the lightweight linux VM on top of which containers are spun on windows, however shouldn't running the image give me version of ubuntu it's running? How can i verify this?


回答1:


The uname command is pulling specs from the kernel running on the host. If I enter a Ubuntu container on my Debian host, the uname will answer with a Debian build of the kernel.

To know the version of Ubuntu you are running, do a

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

It's simple variables that are shell script friendly, so you can run

#!/bin/sh

if [ ! -f /etc/lsb-release ]; then
  echo "lsb-release missing, unlikely to be a Ubuntu system"
  exit 1
fi
. /etc/lsb-release
if [ "$DISTRIB_ID" != "Ubuntu" -o "$DISTRIB_RELEASE" != "16.04" ]; then
  echo "Linux install doesn't appear to be Ubuntu 16.04"
  exit 1
fi
...



回答2:


Try this

cat /etc/os-release

It will return like this

NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial


来源:https://stackoverflow.com/questions/38003194/verify-the-version-of-ubuntu-running-in-a-docker-container

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!