Red Hat Training
A Red Hat training course is available for RHEL 8
2.5. Usando as imagens init da UBI
Este procedimento mostra como construir um container usando um Dockerfile que instala e configura um servidor Web (httpd) para iniciar automaticamente pelo serviço systemd (/sbin/init) quando o container é executado em um sistema host.
Procedimento
Crie um Dockerfile com o seguinte conteúdo para um novo diretório:
FROM registry.access.redhat.com/ubi8/ubi-init RUN yum -y install httpd; yum clean all; systemctl enable httpd; RUN echo "Successful Web Server Test" > /var/www/html/index.html RUN mkdir /etc/systemd/system/httpd.service.d/; echo -e '[Service]\nRestart=always' > /etc/systemd/system/httpd.service.d/httpd.conf EXPOSE 80 CMD [ "/sbin/init" ]
O Dockerfile instala o pacote
httpd, permite que o serviçohttpdcomece no momento da inicialização, cria um arquivo de teste (index.html), expõe o servidor Web ao host (porta 80) e inicia o serviço de inicialização do sistema (/sbin/init) quando o container começa.Construa o recipiente:
# podman build --format=docker -t mysysd .
Opcionalmente, se você quiser executar containers com systemd e SELinux está habilitado em seu sistema, você deve definir a variável booleana
container_manage_cgroup:# Setsebool -P container_manage_cgroup 1
Execute o recipiente com o nome
mysysd_run:# podman run -d --name=mysd_run -p 80:80 mysysd
A imagem
mysysdfunciona como o contêinermysysd_runcomo um processo daemon, com o porto 80 do contêiner exposto ao porto 80 no sistema hospedeiro.Verifique se o contêiner está funcionando:
# podman ps a282b0c2ad3d localhost/mysysd:latest /sbin/init 15 seconds ago Up 14 seconds ago 0.0.0.0:80->80/tcp mysysd_run
Teste o servidor web:
# curl localhost/index.html Successful Web Server Test