GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

differenza tra podman e docker.

Cos'è Podman e qual è la differenza da Docker?

Podman è un motore container compatibile con i container OCI che fa anche parte di RedHat Linux, ma può essere installato anche su altre distribuzioni Linux.

Poiché è conforme a OCI, Podman può essere utilizzato come sostituto drop-in per il più noto runtime Docker. La maggior parte dei comandi Docker può essere tradotta direttamente in comandi Podman.

Cos'è un runtime?

Per molte persone, Container Engine è Docker, ma questo non rappresenta il mondo dei Container Engine al momento, ma ci sono molti Container Engine come Podman.

Di conseguenza, Podman e Docker hanno funzionalità di base. Ciascuno produce immagini che l'altro può utilizzare per azionare i container. I due runtime aggiungono quindi le proprie specializzazioni oltre alle funzionalità di containerizzazione di base.

Installa Podman

Se stai usando Red Hat Enterprise Linux 8, Podman è nel repository locale e puoi installarlo semplicemente usando yum.

yum -y install podman

La maggior parte delle altre distribuzioni Linux include Podman nei propri repository predefiniti

Come lavorare con contenitori e immagini ?

Podman ha molte somiglianze con Docker nei suoi comandi di esecuzione come

1-Come estrarre l'immagine

podman pull my-image:latest

2- Come eseguire l'immagine

podman run my-image:latest --name my-container

3-elenco di contenitori creati ed in esecuzione

podman ps

4-Come rimuovere il contenitore

podman rm my-container

Differenza Podman rispetto alla finestra mobile

Docker è una tecnologia di gestione dei container. Podman è anche una tecnologia container. È possibile utilizzare entrambi per creare immagini del contenitore e archiviare tali immagini in un repository. Puoi anche utilizzare Docker o Podman per estrarre le immagini del contenitore da un registro e quindi eseguirle in un ambiente di destinazione

Tuttavia, le tecnologie hanno differenze. Innanzitutto, mentre Docker ha un demone sottostante, Podman utilizza una tecnologia leggermente diversa per creare contenitori. In secondo luogo, Podman, come suggerisce il nome, consente agli utenti di creare pod. Un pod è un modo per raggruppare i contenitori sotto un nome di organizzazione comune. Docker non supporta i pod. Ci sono altre sottili differenze, ma ad un livello elevato, queste due differenze sono le più pronunciate

1-Contenitori senza radice

I container senza root si riferiscono alla possibilità per un utente senza privilegi di creare, eseguire e gestire in altro modo i container.

"Utente non privilegiato" in questo contesto si riferisce a un utente che non dispone di alcun diritto amministrativo

installa slip4netns:

yum install slirp4netns

configurare una quantità di spazi dei nomi di rete con ambito utente:

echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf
sysctl -p /etc/sysctl.d/userns.conf

ora puoi eseguire container senza root come utente ordinario semplicemente Connettiti al server come utente.

quando avvii un nuovo contenitore con podman run, verrà creato con l'UID del tuo account utente invece di root

baccelli

baccelli sono le più piccole unità di calcolo distribuibili che puoi creare e gestire che assomigliano a kubernetes pods.

creazione pod:

podman pod create --name my-pod

aggiungi contenitore ai pod:

podman run --pod my-pod --name image-1 my-image:latest

può gestire il contenitore nei pod :

podman kill my-pod     #  kill all containers


podman restart my-pod  # restart all containers
           

podman stop my-pod  #stop all containers

Conclusione

in conclusione podman è un motore contenitore come docker ha molte somiglianze come come tirare l'immagine, eseguire l'immagine. ma hanno molte differenze come il contenitore senza radici e i pod


Docker
  1. Qual è la differenza tra i container LXC, LXD e Docker

  2. Qual è la differenza tra un container Linux e un'immagine?

  3. Che cos'è Docker, Differenza tra Docker e VM, Installazione di Docker e suo utilizzo

  4. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  5. Differenza tra Eot ed Eof?

Come installare e utilizzare Podman (alternativa Docker) su Ubuntu 20.04

Come utilizzare Docker Cp per copiare file tra host e contenitori

Come distribuire e gestire un contenitore Docker MongoDB

Come copiare file tra host e contenitore Docker

Differenza tra $HOME e '~' (tilde)?

differenza tra cgroup e namespace