在 Docker 容器中验证 ubuntu 运行 的版本
Verify the version of ubuntu running in a Docker container
我在 windows 8.1 上安装了 Docker 工具箱,我正在创建基于 ubuntu:latest(应该是 16.04)的图像。我想确保我的应用程序确实在 16.04 上 运行。这是我的 Docker 文件:
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/
构建图像后,我尝试 运行 :
docker run image uname -r
但它总是 returns 和 4.4.12 boot2docker
现在我知道 boot2docker 是轻量级的 linux 虚拟机,在其上运行容器 windows,但是 运行 图像不应该给我版本 ubuntu 运行 宁?我该如何验证?
uname
命令正在从主机上的 运行ning 内核中提取规范。如果我在我的 Debian 主机上输入一个 Ubuntu 容器,uname 将使用内核的 Debian 构建来回答。
要了解您 运行ning 的 Ubuntu 版本,请执行
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
它是 shell 脚本友好的简单变量,因此您可以 运行
#!/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
...
试试这个
cat /etc/os-release
会return这样
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
我在 windows 8.1 上安装了 Docker 工具箱,我正在创建基于 ubuntu:latest(应该是 16.04)的图像。我想确保我的应用程序确实在 16.04 上 运行。这是我的 Docker 文件:
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/
构建图像后,我尝试 运行 :
docker run image uname -r
但它总是 returns 和 4.4.12 boot2docker
现在我知道 boot2docker 是轻量级的 linux 虚拟机,在其上运行容器 windows,但是 运行 图像不应该给我版本 ubuntu 运行 宁?我该如何验证?
uname
命令正在从主机上的 运行ning 内核中提取规范。如果我在我的 Debian 主机上输入一个 Ubuntu 容器,uname 将使用内核的 Debian 构建来回答。
要了解您 运行ning 的 Ubuntu 版本,请执行
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
它是 shell 脚本友好的简单变量,因此您可以 运行
#!/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
...
试试这个
cat /etc/os-release
会return这样
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