2016-06-23 7 views
4

У меня есть Docker Toolbox, установленный на окнах 8.1, и я создаю изображение на основе ubuntu: последнее (которое должно быть 16.04). Я хочу убедиться, что мое приложение действительно работает 16.04. Вот мой Dockerfile:Verfiy версия ubuntu, работающая в контейнере Docker

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/ 

После того как изображение будет построен, я пытаюсь запустить:

docker run image uname -r 

Но он всегда возвращается с 4.4.12 boot2docker

Теперь я знаю, что boot2doker является ligtweight Linux VM поверх которых контейнеры развернуты на окнах, однако не следует запускать изображение, чтобы дать мне версию ubuntu, она работает? Как я могу это проверить?

+0

Если вы хотите использовать 16.04, почему вы указали последнее? Почему бы не использовать ubuntu: 16.04? В любом случае, последнее немного ненадежное, некоторые говорят, что вы не должны его использовать (https://medium.com/@mccode/the-misunderstood-docker-tag-latest-af3babfd6375#.k1rk8xseh). – Nauraushaun

ответ

9

Команда uname вытягивает спецификации из ядра, запущенного на хосте. Если я войду в контейнер Ubuntu на моем хосте Debian, то uname ответит на сборку ядра Debian.

Чтобы узнать версию Ubuntu вы работаете, сделать

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

Это простые переменные, сценарий оболочки дружественные, так что вы можете запустить

#!/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

Спасибо! полностью работает. – user1411110

+0

> cat:/etc/lsb-release: Нет такого файла или каталога –

+0

@shanegannon - это контейнер на основе Ubuntu или что-то еще? – BMitch

 Смежные вопросы

  • Нет связанных вопросов^_^