use*_*110 16 ubuntu uname docker boot2docker docker-toolbox
我在Windows 8.1上安装了Docker Toolbox,我正在创建一个基于ubuntu:latest(应该是16.04)的图像.我想确保我的应用程序确实在16.04上运行.这是我的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/
Run Code Online (Sandbox Code Playgroud)
构建映像后,我尝试运行:
docker run image uname -r
Run Code Online (Sandbox Code Playgroud)
但它总是回归 4.4.12 boot2docker
现在我知道boot2docker是轻量级的Linux VM,顶部的容器在windows上旋转,但是不应该运行图像给我运行的ubuntu版本?我怎么验证这个?
BMi*_*tch 15
该uname
命令正在从主机上运行的内核中提取规范.如果我在我的Debian主机上输入一个Ubuntu容器,那么uname将使用内核的Debian构建来回答.
要知道您正在运行的Ubuntu的版本,请执行
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
Run Code Online (Sandbox Code Playgroud)
这是简单的变量,它们是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
...
Run Code Online (Sandbox Code Playgroud)
试试这个
cat /etc/os-release
Run Code Online (Sandbox Code Playgroud)
它会像这样返回
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9831 次 |
最近记录: |