Docker containers com aplicações gráficas

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

[ Hits: 5.796 ]

 


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

Astralinux: Imagem Docker oficial

Compilando um novo kernel herdando as configurações do antigo

CBQ: controle efetivo

Renomeando interfaces de rede com nameif e /etc/mactab

Cartão Atheros sob Slackware 12.2 com driver Madwifi

Leitura recomendada

Como instalar o Docker no Debian 9 Stretch

Rodando Contêiner Ocomon 3 no Podman

Obtendo o Dockerfile a partir de uma imagem

Servidor LAMP em Contêiner no Podman

Instalando Docker no Debian 11 Bullseye

  

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