2016-06-23 17 views
4

Ich habe Docker Toolbox auf Windows 8.1 installiert und ich erstelle ein Bild basierend auf Ubuntu: neueste (die 16.04 sein sollte). Ich möchte sicherstellen, dass meine Bewerbung tatsächlich am 16.04. Hier ist meine Dockerfile:Verify die Version von Ubuntu läuft in einem Docker-Container

FROM ubuntu:latest 
MAINTAINER xyz [email protected] 
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/ 

Sobald das Bild aufgebaut ist, versuche ich zu laufen:

docker run image uname -r 

Aber es gibt immer mit 4.4.12 boot2docker

Jetzt weiß ich, dass boot2doker ist die ligtweight Linux VM oben auf denen Container auf Windows gedreht werden, sollte jedoch nicht das Bild laufen lassen mir Version von Ubuntu es läuft? Wie kann ich das überprüfen?

+0

Wenn Sie 16.04 verwenden möchten ausführen können, warum spezifizierst du das späteste? Warum nicht Ubuntu: 16.04? Das Neueste ist ein bisschen unzuverlässig, einige sagen, Sie sollten es nicht verwenden (https://medium.com/@mccode/the-misunderstood-docker-tag-latest-af3babfd6375#.k1rk8xseh). – Nauraushaun

Antwort

9

Der Befehl uname ruft Spezifikationen aus dem Kernel ab, der auf dem Host ausgeführt wird. Wenn ich einen Ubuntu-Container auf meinem Debian-Host anmelde, antwortet der Uname mit einem Debian-Build des Kernels.

die Version von Ubuntu Um zu wissen, die ausgeführt werden, tun ein

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

Es ist einfach Variablen, die Shell-Skript freundlich, so dass Sie

#!/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 
... 
+0

Danke! total gearbeitet. – user1411110

+0

> cat:/etc/lsb-release: Keine solche Datei oder Verzeichnis –

+0

@shegannon ist das ein Ubuntu-Container oder etwas anderes? – BMitch

Verwandte Themen