Этот Dockerfile создаёт образ Docker, а после его выполнения запускается контейнер, который работает с сервисами X11 и SSH. SSH используется для перенаправления X11 и обеспечивает зашифрованное взаимодействие данных между контейнером Docker и локальной машиной.
Xpra + Xephyr позволяют отображать приложения, работающие внутри контейнера, такие как Firefox, LibreOffice, xterm и т.д., с возможностью восстановления соединения. Xpra также использует специальный протокол, который сам настраивается и мало чувствителен к задержкам, поэтому он может использоваться через более медленные связи, чем стандартный X.
Приложения могут работать без корневого окна, так что клиентская машина управляет окнами, которые отображаются.
Fluxbox и ROX-Filer создают минимальный способ управления окнами и файлами.
Примечание: Клиентская машина должна иметь установленный сервер X11 (Xpra). Смотрите примечания ниже.
Docker доступен в виде PPA (Personal Package Archive) Ubuntu, хостящегося на Launchpad, что делает установку Docker на Ubuntu очень простой.
# Добавьте источники PPA в ваш список источников apt.
sudo apt-get install python-software-properties && sudo add-apt-repository ppa:dotcloud/lxc-docker
# Обновите ваши источники
sudo apt-get update
# Установите, вы заметите ещё одно предупреждение о том, что пакет не может быть проверен. Подтвердите установку.
sudo apt-get install lxc-docker
```### На Windows:
Требования:
- Инструкция по установке (http://docs.docker.io/en/latest/installation/windows/)
### На macOS:
Требования:
- Инструкция по установке (http://docs.docker.io/en/latest/installation/mac/)
## Установка
### Создание образа Docker
$ docker build -t [username]/docker-desktop git://github.com/rogaha/docker-desktop.git
или
$ git clone https://github.com/rogaha/docker-desktop.git $ cd docker-desktop $ docker build -t [username]/docker-desktop .
### Запуск созданного образа Docker (-d: режим отсоединённой работы, -P: экспонировать порт 22 на хостовой машине)
$ CONTAINER_ID=$(docker run -d -P [username]/docker-desktop)
### Получение пароля, сгенерированного во время выполнения
$ echo $(docker logs $CONTAINER_ID | sed -n 1p) Пользователь: docker Пароль: xxxxxxxxxxxx
## Использование
### Получение внешнего порта SSH контейнера
```bash
$ docker port $CONTAINER_ID 22
49153 # Это внешний порт, который переадресован в сервис SSH внутри контейнера как порт 22
$ ifconfig | grep "inet addr:"
inet addr:192.168.56.102 Bcast:192.168.56.255 Mask:255.255.255.0 # Это IP адрес машины в локальной сети
$ ssh docker@192.168.56.102 -p 49153 "sh -c './docker-desktop -s 800x600 -d 10 > /dev/null 2>&1 &'"
# Здесь используется внешний порт
docker@192.168.56.102's password: xxxxxxxxxxxx
$ ./docker-desktop -h
-----------------------------------------------------------
Использование: docker-desktop [-s разрешение_экрана] [-d номер_сеанса]
-s : разрешение экрана (по умолчанию = 800x600)
-d : номер сеанса (по умолчанию = 10)
-h : помощь
-----------------------------------------------------------
```#### Присоединение к запущенному сеансу
```bash
$ xpra --ssh="ssh -p 49153" attach ssh:docker@192.168.56.102:10 # user@ip_address:session_number
docker@192.168.56.102's password: xxxxxxxxxxxx
Если вы хотите выполнять программы без привилегий root, вам просто нужно подключиться к контейнеру через SSH и ввести:
DISPLAY=:[session_number] [program_name] &
Например:
DISPLAY=:10 firefox &
Требования:
Требования:
Требования:
Исправленный текст:
$ xpra --ssh="ssh -p 49153" attach ssh:docker@192.168.56.102:10 # user@ip_address:session_number
docker@192.168.56.102's password: xxxxxxxxxxxx
Если вы хотите выполнять программы без привилегий root, вам просто нужно подключиться к контейнеру через SSH и ввести:
DISPLAY=:[session_number] [program_name] &
Например:
DISPLAY=:10 firefox &
Требования:
Требования:
Требования:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )