Джессика Фразили (Jessica Frazelle), работающая в компании Docker inc, опубликовала подборку docker-контейнеров для запуска популярных консольных и графических пользовательских приложений в режиме изоляции от основной системы. Готовые контейнеры доступны для установки через hub.docker.com. Среди приложений: Skype, Chrome, Spotify, Gparted, Tor Browser,
Для организации ввода и вывода на экран осуществляется проброс сокета X11 в контейнер («-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY»), для сохранения файлов в основной системе применяется bind-монтирование директорий («-v $HOME/Downloads:/root/Downloads»). Организация вывода звука пока требует запуска контейнера в привилегированном режиме («-v /dev/snd:/dev/snd —privileged»), что ставит вопрос о безопасности предложенного метода, так как выполнение в контейнере кода с правами root открывает дополнительные возможности по организации доступа к ресурсам основного хоста (например, в прошлом году была исправлена уязвимость, позволяющая обращаться в внешним файлам через прямой доступ к inode). В следующем выпуске Docker для проброса звука можно будет использовать «—device /dev/snd». При запуске Gparted используется полный проброс в контейнер блочного устройства («—device /dev/sda:/dev/sda»), что делает бессмысленным использования контейнера в этом случае.
Александр Ларсон (Alexander Larsson), известный разработчик GNOME, развивающий собственную систему контейнеров для запуска графических приложений, выступил с критикой предложенного подхода, указав на то, что это не изоляция, а способ предоставления приложениям root-доступа. Основные аргументы сводятся к небезопасности X11: приложение запускается в изолированном контейнере, но по-прежнему имеет полный доступ ко всем X11-клиентам, что позволяет атакующему воспользоваться техниками перехвата событий ввода или подстановки ввода в терминал. Второй проблемой является выполнение управляющего демона docker с правами root, что даёт пользователю, имеющему доступ к запуску контейнеров, получить широкие возможности по манипуляции системными данными (например, можно запустить контейнер «docker run -v /:/tmp ubuntu rм -rf /tmp/*», который удалит все файлы в системе).