Docker containers com aplicações gráficas

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

[ Hits: 5.129 ]

 


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

Alterando permanentemente o MAC address da Ethernet do Raspberry Pi

Comando sed para formatar CNPJ - formatos antigo e novo

Alterando o MAC addrres de sua placa de rede

Sincronizando relógios de hardware e de sistema

Lógica booleana com o test

Leitura recomendada

Docker - remover imagens não utilizadas (limpeza)

Instalando Docker no Raspberry Pi

Instalando o AWX no CentOS 8

Rodando Wildfly no Podman

Cluster Kubernetes (k8S) + NFS em 5 minutos

  

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