Docker containers com aplicações gráficas

Publicado por Carlos Affonso Henriques. em 15/07/2020

[ Hits: 5.561 ]

 


Docker containers com aplicações gráficas



Em princípio é muito simples.

Vou demonstrar como rodar o xterm em um container, como exemplo usarei uma imagem oficial do CentOS.

Embora a instalação do Xorg e do xterm possa ser feita manualmente como em qualquer máquina, vou aproveitar a oportunidade para citar o comando "docker build" e Dockerfile.

Primeiramente crie um diretório:

mkdir SeuDockerfile
cd SeuDockerfile

Dentro desse diretório crie o seu "Dockerfile" (exatamente com essa sintaxe com "D" maiúsculo) com o seguinte conteúdo:

FROM centos:latest
MAINTAINER capitainkurn
LABEL  Description="GUI container"

RUN yum update -y && \
yum install xorg-x11-server-Xorg xterm -y

Agora ainda dentro desse diretório faça o build da imagem.

docker build -t centosgui:latest .

Obs.: com "." (ponto) no fim da linha mesmo.

Após o término execute o seu container:

run -it --rm -e DISPLAY=${DISPLAY} --net host --hostname gui0 --name gui0 -v "$HOME/.Xauthority:/root/.Xauthority:rw" -w ${HOME} centosgui:latest

Em seguida execute o xterm e ele abrirá em seu display padrão.

Você ainda poderá executá-lo via entrypoint com o container em background.

docker run -d --rm -e DISPLAY=${DISPLAY} --net host --hostname gui0 --name gui0 -v "$HOME/.Xauthority:/root/.Xauthority:rw" -w ${HOME} --entrypoint "/bin/xterm" centosgui:latest

Lembrando que o servidor X da máquina hospedeira deverá estar em modo de escuta TCP e com acesso liberado. No CentOS se o X estiver sendo iniciado pelo systemd graphical.target, edite o arquivo /etc/gdm/custom.conf e acrescente a seguintes linhas:

[security]
DisallowTCP=false

Se estiver sendo iniciado via xinit, edite o arquivo /bin/startx e altere a linha:

de:

defaultserverargs="-nolisten tcp"

para:

defaultserverargs=""

e finalmente libere acesso ao X com o comando:

xhost +


Outras dicas deste autor

Sincronizando relógios de hardware e de sistema

Editando arquivos e usando variáveis no sed

Manipulando o MySQL diretamente pelo shell

Capturando o MAC address do cliente via Apache

Liberando Rádio UOL: Duas soluções

Leitura recomendada

Construindo bridges Tor com Docker

Instalando Docker-CE no RockyLinux

Docker no CentOS7 - instalação fácil

Instalando Docker no Debian 10 Buster

Instalação do Docker no Linux Mint 20

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts