Red Hat Training
A Red Hat training course is available for RHEL 8
6.2. Funcionamento de contêineres com runlabels
Algumas imagens da Red Hat incluem etiquetas que fornecem linhas de comando pré-definidas para trabalhar com essas imagens. Usando o comando podman container runlabel <label>, você pode dizer a podman para executar o comando definido naquele <label> para a imagem. As runlabels existentes incluem:
- install: Configura o sistema hospedeiro antes de executar a imagem. Normalmente, isto resulta na criação de arquivos e diretórios no host que o container pode acessar quando for executado mais tarde.
- run: Identifica as opções de linha de comando podman a serem usadas ao executar o contêiner. Tipicamente, as opções abrem privilégios no host e montam o conteúdo do host que o container precisa para permanecer permanentemente no host.
- uninstall: Limpa o sistema hospedeiro depois que você terminar de operar o contêiner.
As imagens da Red Hat que têm um ou mais runlabels incluem as imagens rsyslog e support-tools. O procedimento a seguir ilustra como usar essas imagens.
6.2.1. Rodando rsyslog com runlabels
A imagem do contêiner rhel8/rsyslog é feita para executar uma versão em contêiner do daemon rsyslogd. Dentro da imagem rsyslog estão install, run e uninstall runlabels. Os seguintes passos de procedimento são realizados através da instalação, execução e desinstalação da imagem rsyslog:
Procedimento
Puxe a imagem
rsyslog:# podman pull registry.redhat.io/rhel8/rsyslog
Exibir (mas ainda não rodar) o runlabel
installpararsyslog:# podman container runlabel install --display rhel8/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/install.sh
Isto mostra que o comando abrirá privilégios para o host, montará o sistema de arquivos raiz do host em
/hostno container, e executará um scriptinstall.sh.Execute o runlabel
installpararsyslog:# podman container runlabel install rhel8/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/install.sh Creating directory at /host//etc/pki/rsyslog Creating directory at /host//etc/rsyslog.d Installing file at /host//etc/rsyslog.conf Installing file at /host//etc/sysconfig/rsyslog Installing file at /host//etc/logrotate.d/syslog
Isto cria arquivos no sistema hospedeiro que a imagem
rsyslogutilizará mais tarde.Mostrar o runlabel
runpararsyslog:# podman container runlabel run --display rhel8/rsyslog command: podman run -d --privileged --name rsyslog --net=host --pid=host -v /etc/pki/rsyslog:/etc/pki/rsyslog -v /etc/rsyslog.conf:/etc/rsyslog.conf -v /etc/sysconfig/rsyslog:/etc/sysconfig/rsyslog -v /etc/rsyslog.d:/etc/rsyslog.d -v /var/log:/var/log -v /var/lib/rsyslog:/var/lib/rsyslog -v /run:/run -v /etc/machine-id:/etc/machine-id -v /etc/localtime:/etc/localtime -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog --restart=always registry.redhat.io/rhel8/rsyslog:latest /bin/rsyslog.sh
Isto mostra que o comando abre privilégios para o host e monta arquivos e diretórios específicos do host dentro do container, quando lança o container
rsyslogpara rodar o daemonrsyslogd.Execute o runlabel
runpararsyslog:# podman container runlabel run rhel8/rsyslog command: podman run -d --privileged --name rsyslog --net=host --pid=host -v /etc/pki/rsyslog:/etc/pki/rsyslog -v /etc/rsyslog.conf:/etc/rsyslog.conf -v /etc/sysconfig/rsyslog:/etc/sysconfig/rsyslog -v /etc/rsyslog.d:/etc/rsyslog.d -v /var/log:/var/log -v /var/lib/rsyslog:/var/lib/rsyslog -v /run:/run -v /etc/machine-id:/etc/machine-id -v /etc/localtime:/etc/localtime -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog --restart=always registry.redhat.io/rhel8/rsyslog:latest /bin/rsyslog.sh 28a0d719ff179adcea81eb63cc90fcd09f1755d5edb121399068a4ea59bd0f53
O recipiente
rsyslogabre privilégios, monta o que precisa do anfitrião e executa o daemonrsyslogdem segundo plano (-d). O daemonrsyslogdcomeça a reunir mensagens de registro e direciona as mensagens para arquivos no diretório/var/log.Mostrar o runlabel
uninstallpararsyslog:# podman container runlabel uninstall --display rhel8/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/uninstall.sh
Execute o runlabel
uninstallpararsyslog:# podman container runlabel uninstall rhel8/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/uninstall.sh
Neste caso, o script
uninstall.shapenas remove o arquivo/etc/logrotate.d/syslog. Note que ele não limpa os arquivos de configuração.