![KVM 대신 LXC의 X 및 xdotool](https://linux55.com/image/37692/KVM%20%EB%8C%80%EC%8B%A0%20LXC%EC%9D%98%20X%20%EB%B0%8F%20xdotool.png)
답변1
성능에 대해서는 아무 말도 할 수 없지만 이 문제를 조사하는 동안 다음과 같은 질문과 답변을 발견했습니다.Docker에서 GUI 애플리케이션을 실행할 수 있나요?이를 달성하는 3가지 방법을 보여줍니다.
VNC를 통해 AppX 실행
이 방법은 다음 Dockerfile을 사용하여 표시됩니다.
# Firefox over VNC # # VERSION 0.1 # DOCKER-VERSION 0.2 from ubuntu:12.04 # make sure the package repository is up to date run echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list run apt-get update # Install vnc, xvfb in order to create a 'fake' display and firefox run apt-get install -y x11vnc xvfb firefox run mkdir /.vnc # Setup a password run x11vnc -storepasswd 1234 ~/.vnc/passwd # Autostart firefox (might not be the best way to do it, but it does the trick) run bash -c 'echo "firefox" >> /.bashrc'
그런 다음 Docker 인스턴스를 다음과 같이 실행합니다.
$ docker run -p 5900 creack/firefox-vnc x11vnc -forever -usepw -create
Docker + 하위 사용자 사용
Subuser + Docker를 사용하면 단일 애플리케이션만 포함된 Docker VM을 직접 실행하여 물리적 호스트의 특정 폴더에 대한 좁은 액세스 권한을 부여할 수 있습니다.
Subuser는 설치가 쉽도록 설계되었으며 그 자체로는 기술적으로 중요하지 않습니다. 이는 단지 docker의 래퍼일 뿐이며 그 이상은 아닙니다.
하위 사용자는 Docker 컨테이너를 시작하고 호스트와 하위 컨테이너 간에 볼륨을 공유합니다. 그게 다야.
SSH를 통해 X11 실행
마지막 기술은 X11 + SSH 서비스를 실행하는 Docker 인스턴스를 설정하는 방법을 보여줍니다. 그러면 이 설정을 통해 모든 X11 애플리케이션이 SSH를 통해 터널링할 수 있습니다.
ssh는 X11을 전달하는 데 사용되며 도커 컨테이너와 로컬 시스템 간의 암호화된 데이터 통신을 제공합니다.
그런 다음 이 방법은 Xpra + Xepyr을 로컬로 설정하는 과정을 계속합니다.
XPula+사피르세션 복구 기능을 사용하여 Firefox, LibreOffice, xterm 등과 같은 컨테이너 내에서 실행되는 애플리케이션을 표시할 수 있습니다. 따라서 연결이 끊어지더라도 애플리케이션의 상태를 잃지 않고 어디서나 데스크탑을 열 수 있습니다.
Xpra는 또한 자체 조정되고 상대적으로 대기 시간에 민감하지 않은 맞춤형 프로토콜을 사용하므로 표준 X보다 열악한 링크에서 사용할 수 있습니다.
클라이언트 컴퓨터가 표시된 창을 관리할 수 있도록 응용 프로그램은 루트가 없을 수 있습니다.