Potresti usare la finestra mobile che usa i contenitori di Linux.
Ecco come si può fare:
Scarica e installa la finestra mobile da qui
Crea un file chiamato "Dockerfile" che contiene i comandi per creare un'immagine docker. Il seguente file crea un'immagine basata su Ubuntu in cui verranno installati firefox e il server OpenSSH. Viene creato un utente "noone" (sostituisci [la tua chiave pubblica] con una tua chiave pubblica) che verrà utilizzato in seguito per avviare Firefox.
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get -y install openssh-server firefox
RUN mkdir /var/run/sshd
RUN useradd -m -U --shell=/bin/bash noone
RUN sed -ri 's/noone:!/noone:*/g' /etc/shadow
RUN sed -ri 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN mkdir /home/noone/.ssh
RUN chown noone:noone /home/noone/.ssh
RUN echo 'ssh-rsa [your public key] xxx' > /home/noone/.ssh/authorized_keys
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
Avvia il daemon docker con docker -d
.
Vai nella directory in cui si trova il tuo Dockerfile ed esegui docker build -t sandboxfirefox
. Questo creerà l'immagine sanboxfirefox.
Avvia un contenitore finestra mobile dall'immagine creata sopra con docker run -d -p 127.0.0.1:5001:22 sandboxfirefox
(la porta 22 del contenitore viene esportata nella porta 5001 nell'host)
Ora puoi avviare firefox via SSH usando l'inoltro X con l'utente "noone" come segue:
ssh -o "UserKnownHostsFile /dev/null" -t -X -p 5001 noone@localhost firefox
Le modifiche al filesystem avranno effetto solo sul contenitore e non sull'immagine. Se si interrompe il contenitore, tutte le modifiche andranno perse.