Podman (Português) - ArchWiki

Jump to content
Toggle the table of contents

# Podman (Português)

2 languages

- English
- 日本語

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Podman. Data da última tradução: 2021-02-14. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- systemd-nspawn
- Linux Containers
- Docker
- Buildah
- Vagrant

Podman é uma alternativa ao Docker, fornecendo uma interface similar.

## Instalação

Instale o pacote podman. Além disso, se você deseja criar imagens de contêiner, consulte Buildah.

Ao contrário do Docker, o Podman não requer um daemon, mas existe um que fornece uma API para serviços como o cockpit via cockpit-podman.

Por padrão, só é possível executar contêineres do Podman como root. Consulte Podman sem root para configurar contêineres em execução sem ser o usuário root.

## Configuração

Arquivos de configuração para configurar como os contêineres se comportam estão localizados em `/etc/containers`. Para configurar a interface da ponte de rede usada pelo Podman, consulte `/etc/cni/net.d/87-podman-bridge.conflist`

### Podman sem root

Por padrão somente `root` pode rodar contêineres (ou namespaces no kernelspeak).

Nota: No linux-hardened `kernel.unprivileged_userns_clone` é definido para `0` (mas podman sem root precisa dele configurado para `1`). Use sysctl ou um parâmetro do kernel para configurar isso.

Para permitir operações sem root de contêineres Podman, primeiro determine que usuário(s) e grupo(s) você quer usar para os contêineres, e adicione as entradas correspondentes para `/etc/subuid` e `/etc/subgid` respectivamente.

This article or section needs expansion.

Reason: usermod's `--add-subuids` and `--add-subgids` options will not work if the `/etc/subuid` and `/etc/subgid` files do not exist. (Discuss in Talk:Podman (Português))

O seguinte exemplo habilita o usuário e grupo `podman` a rodar contêineres Podman (ou outros tipos de contêineres nesse caso). Alocando os UIDs e GIDs do 165536 a 169631 para o usuário e grupo `podman` respectivamente. Para isso, você pode editar os arquivos diretamente ou usar usermod(8). Veja subuid(5) e subgid(5) para mais informação.

    # usermod --add-subuids 165536-231072 --add-subgids 165536-231072 username

    /etc/subuid

    username:165536:65536

    /etc/subgid

    username:165536:65536

Nota: Muitas imagens precisam de 65536 uids / gids para mapeamento (particularmente a base busybox e imagens alpine). É recomendado que você reserve ao menos essa quantidade de uids / gids para cada usuário para maximilizar a compatibilidade com o docker.

Podman sem root usa processo de pausa para manter namespaces do usuário rodando. Isto previne qualquer mudança aos arquivos `/etc/subuid` e `/etc/subgid` de serem propagados para os contêineres sem root enquanto o processo de pausa está rodando. Para estas mudanças serem propagadas é necessário executar:

    $ podman system migrate

Depois disso, o usuário/grupo `podman` pode iniciar e executar contêineres podman.

## Imagens

Nota: Você pode omitir o prefixo do registro das imagens, já que o Podman irá automaticamente buscar pela imagem em todos os registros definidos em `/etc/containers/registries.conf` no `registries.search` na ordem definida. As seguintes imagens irão conter o prefixo, para permitir configurações sem `docker.io` na configuração.

### Arch Linux

O comando a seguir obtém a imagem x86_64 do Arch Linux do Docker Hub. Esta é uma versão simplificada do núcleo do Arch sem rede, etc.

    # podman pull docker.io/archlinux

Veja também README.md.

Para uma base completa do Arch, clone o repositório do link abaixo e compile sua própria imagem.

    $ git clone https://gitlab.archlinux.org/archlinux/archlinux-docker.git

Certifique-se que o pacote devtools esteja instalado.

Edite o arquivo `packages` de forma que ele contenha 'base'. Então, execute:

    # make rootfs
    # podman build -t archlinux .

### Alpine Linux

Alpine Linux é uma escolha popular para imagens de contêineres pequenos, especialmente para software compilado como binários estáticos. O comando a seguir obtém a imagem mais recente do Alpine Linux em Docker Hub:

    # podman pull docker.io/alpine

O Alpine Linux usa a implementação libc musl libc em vez da implementação libc glibc usada pela maioria das distribuições Linux. Como o Arch Linux usa glibc, existem várias diferenças funcionais entre um host do Arch Linux e um contêiner Alpine Linux que podem afetar o desempenho e a correção do software. Uma lista dessas diferenças está documentada aqui.

Observe que o software vinculado dinamicamente e compilado no Arch Linux (ou em qualquer outro sistema que use glibc) pode ter bugs e problemas de desempenho quando executado no Alpine Linux (ou em qualquer outro sistema usando uma libc diferente). Consulte [1], [2] e [3] para exemplos.

### CentOS

O comando a seguir baixa a imagem mais recente do CentOs do Docker Hub:

    # podman pull docker.io/centos

Consulte a página do Docker Hub para obter uma lista completa das tags disponíveis para cada versão do CentOS.

### Debian

O comando a seguir baixa a imagem mais recente do Debian do Docker Hub:

    # podman pull docker.io/debian

Consulte a página do Docker Hub para obter uma lista completa das tags disponíveis, incluindo ambas versões padrão e slim para cada lançamento do Debian.

## Resolução de problemas

### Contêineres são terminados no logout do shell

Pode acontecer de quando você deslogar da máquina contêineres do Podman serem parados. Para prevenir isso, a persistência de processos do usuário deve ser habilitada para os contêineres executados por ele:

    $ loginctl enable-linger

Você pode também criar units de usuário do systemd como descrito: https://docs.podman.io/en/latest/markdown/podman-auto-update.1.html#examples

## Veja também

- Site oficial

Categories:

- Virtualization (Português)
- Sandboxing (Português)

Hidden category:

- Pages or sections flagged with Template:Expansion