8.3. Auto-geração de um arquivo de unidade do sistema usando Podman
Por padrão, Podman gera um arquivo de unidade para containers ou cápsulas existentes. Você pode gerar mais arquivos de unidade portáteis do sistema usando o podman generate systemd --new. A bandeira --new instrui Podman a gerar arquivos unitários que criam, iniciam e removem containers.
Procedimento
Puxe a imagem que você deseja usar em seu sistema. Por exemplo, para puxar a imagem
busybox:podman pull busybox:latest
# podman pull busybox:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow Liste todas as imagens disponíveis em seu sistema:
podman images
# podman images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/busybox latest c7c37e472d31 3 weeks ago 1.45 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow Crie o recipiente
busybox:podman create --name busybox busybox:latest
# podman create --name busybox busybox:latest 1e12cf95e305435c0001fa7d4a14cf1d52f737c1118328937028c0bd2fdec5caCopy to Clipboard Copied! Toggle word wrap Toggle overflow Para verificar se o container foi criado, liste todos os containers:
podman ps -a
# podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e12cf95e305 docker.io/library/busybox:latest sh 7 seconds ago Created busyboxCopy to Clipboard Copied! Toggle word wrap Toggle overflow Gerar um arquivo de unidade do sistema para o contêiner
busybox:podman generate systemd --new --files --name busybox
# podman generate systemd --new --files --name busybox /root/container-busybox.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exibir o conteúdo do arquivo da unidade gerada
container-busybox.servicesystemd:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Observe que os arquivos de unidade gerados usando a opção
--newnão esperam que os recipientes e as cápsulas existam. Portanto, eles executam o comandopodman runao iniciar o serviço (veja a linhaExecStart) em vez do comandopodman start. Por exemplo, veja a seção 7.2. Gerando um arquivo de unidade systemd usando Podman.O comando
podman runusa as seguintes opções de linha de comando:-
A opção
--conmon-pidfileaponta para um caminho para armazenar a identificação do processo para o processoconmonem execução no host. O processoconmontermina com o mesmo status de saída do contêiner, o que permite que o sistema informe o status correto do serviço e reinicie o contêiner, se necessário. -
A opção
--cidfileaponta para o caminho que armazena a identificação do contêiner. -
O
%té o caminho para a raiz do diretório de tempo de execução, por exemplo/run/user/$UserID. -
O
%né o nome completo do serviço.
-
A opção
Copie os arquivos da unidade para
/usr/lib/systemd/systempara instalá-los como usuário root:cp -Z container-busybox.service /usr/lib/systemd/system
# cp -Z container-busybox.service /usr/lib/systemd/system Created symlink /etc/systemd/system/multi-user.target.wants/container-busybox.service /usr/lib/systemd/system/container-busybox.service. Created symlink /etc/systemd/system/default.target.wants/container-busybox.service/usr/lib/systemd/system/container-busybox.service. Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
- Melhoria da integração do sistema com o artigoPodman 2.0 de Valentin Rothberg e Dan Walsh.
- Para saber mais sobre a configuração de serviços com o systemd, consulte o capítulo Configurando configurações básicas do sistema chamado Gerenciando serviços com o systemd.