Все, що я міг знайти, - це офіційне зображення Docker для Ubuntu Desktop на Docker Hub. Хіба не існує сервера Ubuntu?
Це означає, що я повинен створити власне базове зображення, використовуючиscratch
?
Все, що я міг знайти, - це офіційне зображення Docker для Ubuntu Desktop на Docker Hub. Хіба не існує сервера Ubuntu?
Це означає, що я повинен створити власне базове зображення, використовуючиscratch
?
Відповіді:
Все, що я міг знайти, - це офіційне зображення Docker для Ubuntu Desktop на Docker Hub.
Ніде ця сторінка не говорить про те, що це зображення Ubuntu Desktop . У будь-якому разі, це не мало б сенсу, оскільки ви (як правило) не використовуєте робоче середовище в контейнері Docker.
Ви можете протестувати його, спочатку запустити bash в контейнері Ubuntu:
docker run -it ubuntu /bin/bash
-i
,--interactive
Тримайте STDIN відкритим, навіть якщо його немає
-t
,--tty
Виділіть псевдо-TTY
Потім запустіть наступну команду, щоб перевірити, чи ubuntu-desktop
встановлено:
dpkg -l ubuntu-desktop
Питання стосувалося сервера Ubuntu, але всі відповіді та обговорення стосувалися 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
Докерфайл можна зробити:
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 як бази.
Якщо ви подивитеся на маніфести для зображень хмар, то тут виглядає, що це базове зображення розгортання сервера.
IMHO, 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 і створювати його з нуля.