Все, что я мог найти, это официальный образ Docker для Ubuntu Desktop на Docker Hub. Разве нет ни одного для Ubuntu Server?
Означает ли это, что я должен был бы создать свой собственный базовый образ, используяscratch
?
Все, что я мог найти, это официальный образ Docker для Ubuntu Desktop на Docker Hub. Разве нет ни одного для Ubuntu Server?
Означает ли это, что я должен был бы создать свой собственный базовый образ, используяscratch
?
Ответы:
Все, что я мог найти, это официальный образ Docker для Ubuntu Desktop на Docker Hub.
Нигде на этой странице не написано, что это образ Ubuntu Desktop . В любом случае, это не имеет смысла, потому что вы (как правило) не запускаете среду рабочего стола в контейнере Docker.
Вы можете проверить это, сначала запустив bash в контейнере Ubuntu:
docker run -it ubuntu /bin/bash
-i
,--interactive
Keep STDIN открыть , даже если не прилагается
-t
,--tty
Выделяют псевдо-TTY
Затем выполните следующую команду, чтобы проверить, ubuntu-desktop
установлена ли она:
dpkg -l ubuntu-desktop
Вопрос касался Ubuntu Server, но все ответы и обсуждения касались Ubuntu Desktop. Поэтому я отвечу на оба вопроса, но сначала обращайтесь к Ubuntu Desktop. Наконец, (и, вероятно, не рекомендуется для эфемерного контейнера , и большинство контейнеров должны быть эфемерными в соответствии с лучшими практиками Докера , но, эй, есть исключения.) Вы можете установить Ubuntu Desktop и Ubuntu Server на контейнер и запустить его.
ПРИМЕЧАНИЕ. Вы можете добавить--rm
флаг, чтобы не допустить вздутие хранилища вашего хоста, автоматически удаляя контейнеры после их запуска, если вы только экспериментируете с ними.
docker run --rm -it ubuntu
Это довольно большой контейнер! ~ 1,5 Гб
Если вы запускаете:
docker run -it ubuntu
Затем в контейнере:
> apt-get update && apt-get install -y ubuntu-desktop
Вы эффективно загрузите Ubuntu Desktop
Dockerfile может быть сделан:
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-desktop
Затем постройте это:
docker build -t ubuntu-desktop .
И запустите это:
docker run -it ubuntu-desktop
docker run -it ubuntu
Из контейнерного терминала:
apt-get update && apt-get install -y ubuntu-server
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server
Построить это:
docker build -t ubuntu-server .
Запустить его:
docker run -it ubuntu-server
docker run -it ubuntu
Контейнерный терминал:
apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
Построить это:
docker build -t ubuntu-server-desktop .
Запустить его:
docker run -it ubuntu-server-desktop.
Они начинаются с файлов cloudimg в качестве базы.
Если вы посмотрите на манифесты для облачных образов, то здесь будет видно, что это базовый образ развертывания сервера.
ИМХО, рабочий стол Ubuntu в основном просто ubuntu server
+ desktop environment
. Официальный OP репозитория, на который указывают, не содержит никаких изображений со средой рабочего стола, поэтому вы должны рассматривать их как версии сервера.
Для минимализма я сейчас использую gcr.io/google_containers/ubuntu-slim:0.14
для своего личного проекта. Это минимальный, но полностью функционирующий образ Ubuntu, размер которого составляет всего 1/3 от размера официальных изображений.
Для дальнейшего уточнения ответа ганбари. Вот вывод команд. Определенно нет пакетов относительно рабочего стола.
> docker pull ubuntu:latest
> docker run -t -i ubuntu /bin/bash
> dpkg -l ubuntu-desktop
> dpkg-query: no packages found matching ubuntu-desktop
apt-get update
.
Чтобы запустить определенную версию Ubuntu с помощью Docker, выполните следующую команду:
docker run -it ubuntu:16.04 /bin/bash
16.04 номер версии. Если вы пропустите номер версии, самое последнее изображение будет выбрано из хранилища. Вам не нужно получать весь Dockerfile и создавать его с нуля.