Docker containers com aplicações gráficas

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

[ Hits: 5.090 ]

 


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

TOR Browser rodando sob root ou qualquer outro usuário

SSH contornando o firewall com o Tor

Proxy ARP: Abrindo um servidor da rede interna para a internet com a ferramenta ip

Anaconda died after receiving signal 9 [Resolvido]

Atualizando a BIOS de máquinas virtuais baseadas em KVM/QEMU

Leitura recomendada

Docker: "ps: command not found" [Resolvido]

Rodando Wildfly no Podman

Docker - remover imagens não utilizadas (limpeza)

Rodando PostgreSQL + PGAdmin via Podman

Instalando Docker no Raspberry Pi

  

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