# Podman (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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 podman

    /etc/subuid

    podman:165536:65536

    /etc/subgid

    podman: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 acima 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: http://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