Come eseguire applicazioni GUI in un contenitore Docker
Ciao a tutti, oggi impareremo come eseguire applicazioni GUI in un contenitore Docker. Possiamo facilmente eseguire le applicazioni GUI più comuni senza problemi all’interno di un contenitore Docker. roustabout è un progetto Open Source che fornisce una piattaforma aperta per impacchettare, spedire ed eseguire qualsiasi applicazione come un contenitore leggero. Non ha limiti di supporto linguistico, framework o sistema di pacchettizzazione e può essere eseguito ovunque, in qualsiasi momento, dai piccoli computer domestici ai server di fascia alta. Li rende eccellenti elementi costitutivi per la distribuzione e la scalabilità di applicazioni Web, database e servizi di back-end senza dipendere da uno stack o da un fornitore particolare.
Ecco i passaggi semplici e veloci su come eseguire un’applicazione GUI in un contenitore Docker. In questo tutorial, prenderemo Firefox come esempio.
1. Installazione di Docker
Innanzitutto, prima di iniziare, dobbiamo assicurarci di avere Docker installato sul nostro sistema operativo Linux host. Qui stiamo eseguendo CentOS 7 come host, quindi eseguiremo yum manager per installare la finestra mobile utilizzando il comando seguente.
# yum install docker
# systemctl restart docker.service
2. Creazione del Dockerfile
Ora che il nostro Docker Daemon è in esecuzione, ci prepareremo ora a creare il nostro Firefox Docker Container. Creeremo un Dockerfile in cui inseriremo la configurazione necessaria per creare un contenitore Firefox funzionante. Prenderemo l’ultima versione di CentOS per la nostra immagine Docker. Per fare ciò, creeremo un file chiamato Dockerfile usando il nostro editor di testo preferito.
# nano Dockerfile
Successivamente, aggiungeremo le seguenti righe di configurazione al Dockerfile e quindi lo salveremo.
#!/bin/bash
FROM centos:7
RUN yum install -y firefox
# Replace 0 with your user / group id
RUN export uid=0 gid=0
RUN mkdir -p /home/developer
RUN echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd
RUN echo "developer:x:${uid}:" >> /etc/group
RUN echo "developer ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
RUN chmod 0440 /etc/sudoers
RUN chown ${uid}:${gid} -R /home/developer
USER developer
ENV HOME /home/developer
CMD /usr/bin/firefox
Nota: sostituisci 0 con il tuo ID utente e gruppo nella quarta riga della configurazione. Possiamo ottenere l’uid e il gid dell’utente corrente eseguendo il seguente comando in una shell o in un terminale.
# id $USER
3. Creazione del contenitore Docker
Ora costruiremo il contenitore che verrà eseguito secondo il Dockerfile sopra. Installerà il browser Web Firefox e i pacchetti richiesti. Quindi imposterà l’autorizzazione dell’utente per farlo funzionare. Qui il nome dell’immagine è impostato come firefox, puoi nominarlo come desideri.
# docker build --rm -t firefox .
4. Esecuzione del contenitore Docker
Ora finalmente, se tutto è andato bene, saremo in grado di eseguire la nostra applicazione GUI, ovvero il browser Mozilla Firefox all’interno del nostro contenitore Docker Firefox in esecuzione in un’immagine CentOS 7.
# docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix firefox
Conclusione
L’esecuzione di applicazioni GUI in un contenitore Docker è davvero un’esperienza meravigliosa che non danneggerà/utilizzerà mai il file system host. Dipende completamente dal tuo contenitore Docker. In questo tutorial, abbiamo provato Firefox in CentOS 7 Docker Image con Firefox installato. Possiamo utilizzare diverse applicazioni GUI con questa tecnologia. Se hai domande, suggerimenti, feedback, scrivili nella casella dei commenti qui sotto in modo che possiamo migliorare o aggiornare i nostri contenuti. Grazie ! Divertiti 🙂