Red Hat Training

A Red Hat training course is available for RHEL 8

8.2. Geração de um arquivo de unidade do sistema usando Podman

Podman permite que o sistemad controle e gerencie os processos de contêineres. Você pode gerar um arquivo de unidade systemd para os contêineres e pods existentes usando o comando podman generate systemd. Recomenda-se usar podman generate systemd porque os arquivos de unidades gerados mudam freqüentemente (via atualizações para Podman) e o podman generate systemd garante que você obtenha a última versão dos arquivos de unidades.

Procedimento

  1. Criar um recipiente (por exemplo, myubi):

    $ podman create -d --name myubi registry.access.redhat.com/ubi8:latest top
    0280afe98bb75a5c5e713b28de4b7c5cb49f156f1cce4a208f13fee2f75cb453
  2. Use o nome ou ID do container para gerar o arquivo da unidade do sistema e direcione-o para o arquivo ~/.config/systemd/user/container-myubi.service:

    $ podman generate systemd --name myubi > ~/.config/systemd/user/container-myubi.service

Etapas de verificação

  • Para exibir o conteúdo do arquivo de unidade do sistema gerado, entre:

    $ cat ~/.config/systemd/user/container-myubi.service
    # container-myubi.service
    # autogenerated by Podman 2.0.0
    # Tue Aug 11 10:51:04 CEST 2020
    
    [Unit]
    Description=Podman container-myubi.service
    Documentation=man:podman-generate-systemd(1)
    Wants=network.target
    After=network-online.target
    
    [Service]
    Environment=PODMAN_SYSTEMD_UNIT=%n
    Restart=on-failure
    ExecStart=/usr/bin/podman start myubi
    ExecStop=/usr/bin/podman stop -t 10 myubi
    ExecStopPost=/usr/bin/podman stop -t 10 myubi
    PIDFile=/run/user/1000/containers/overlay-containers/0280afe98bb75a5c5e713b28de4b7c5cb49f156f1cce4a208f13fee2f75cb453/userdata/conmon.pid
    KillMode=none
    Type=forking
    
    [Install]
    WantedBy=multi-user.target default.target
    • A linha Restart=on-failure define a política de reinício e instrui o sistema a reiniciar quando o serviço não puder ser iniciado ou interrompido de forma limpa, ou quando o processo sair fora de zero.
    • A linha ExecStart descreve como iniciamos o contêiner.
    • A linha ExecStop descreve como paramos e removemos o container.

Recursos adicionais