Podman (Português)

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