Diferencia entre revisiones de «Contenedores con podman»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Página creada con «A primera vista, Podman es muy similar a [https://1984.lsi.us.es/wiki-ssoo/index.php/Contenedores Docker]. Tan parecido es su uso que, para usar los comandos de podman, tan...»)
 
(Algunas diferencias entre Podman y Docker)
 
(No se muestran 7 ediciones intermedias del mismo usuario)
Línea 8: Línea 8:
  
 
(recomendado en la propia página de podman: https://podman.io/whatis.html)
 
(recomendado en la propia página de podman: https://podman.io/whatis.html)
 
Sin embargo, a pesar de que casi todos los comandos se pueden transcribir tal cuál de docker a podman, el segundo tiene diferencias en cuanto a su funcionamiento.
 
 
==Diferencias de Podman y Docker==
 
*La primera diferencia que nos encontramos, respecto a Docker, es que Podman no tiene servicio.
 
*Podman no hace uso de un demonio.
 
*En podman, un usuario sólo puede ver y utilizar las imágenes y contenedores que han sido descargadas por este mismo usuario. Por esto mismo,podemos hacer uso de podman sin ser necesariamente los administradores del sistema.
 
 
*Podman no posee todavía una herramienta de orquestación de contenedores oficial, ya que consideran que, por defecto, para esta tarea se emplea Kubernetes, para lo cuál Podman tiene comandos que facilitan su despligue con esta herramienta. Sin embargo, existe un proyecto third-party llamado [https://github.com/containers/podman-compose podman-compose], que trata de ser la solución a la sustitución de docker-compose.
 
  
 
=Descarga de podman=
 
=Descarga de podman=
Línea 31: Línea 22:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Una vez descargado, para más información:
+
Una vez descargado, podemos consultar más información haciendo:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
man podman
 
man podman
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=Construir una imagen a partir de un fichero Dockerfile=
 +
 +
Seguimos los mismos pasos que si creáramos una imagen a partir de un fichero con docker. Para ello, podman hace uso de los mismos Dockerfiles, sin hacer modificaciones. Lo podemos comprobar con el Dockerfile de ejemplo de aplicaciones hug usado [https://1984.lsi.us.es/wiki-ssoo/index.php/Contenedores aquí]. Con un editor de textos, como nano (que no viene por defecto instalado en la versión 31 de Fedora).
 +
 +
Para descargar nano:
 +
<syntaxhighlight lang="bash">
 +
sudo dnf install nano
 +
</syntaxhighlight>
 +
 +
Dockerfile:
 +
<syntaxhighlight lang="bash">                               
 +
FROM python:alpine
 +
 +
ENV USERNAME="username"
 +
RUN mkdir /app
 +
RUN pip install hug
 +
COPY endpoint.py /app
 +
WORKDIR /app
 +
CMD hug -f endpoint.py
 +
</syntaxhighlight>
 +
 +
endpoint.py:
 +
<syntaxhighlight lang="bash">                               
 +
FROM python:alpine
 +
 +
ENV USERNAME="username"
 +
RUN mkdir /app
 +
RUN pip install hug
 +
COPY endpoint.py /app
 +
WORKDIR /app
 +
CMD hug -f endpoint.py
 +
</syntaxhighlight>
 +
 +
Dentro de la carpeta que contiene estos 2 archivos, para construir la imagen, ejecutamos el siguiente comando:
 +
<syntaxhighlight lang="bash">
 +
podman build -t app:v1 -f Dockerfile .
 +
</syntaxhighlight>
 +
 +
Comprobamos que se ha creado la imagen correctamente:
 +
<syntaxhighlight lang="bash">
 +
podman images
 +
</syntaxhighlight>
 +
 +
Iniciamos un contenedor a partir de nuestra nueva imagen:
 +
<syntaxhighlight lang="bash">
 +
podman run -ti app:v1
 +
</syntaxhighlight>
 +
 +
Si todo funcionó bien, debería aparecer por pantalla:
 +
<syntaxhighlight lang="bash">
 +
/#######################################################################\
 +
          `.----``..-------..``.----.
 +
        :/:::::--:---------:--::::://.
 +
        .+::::----##/-/oo+:-##----:::://
 +
        `//::-------/oosoo-------::://.      ##    ##  ##    ##    #####
 +
          .-:------./++o/o-.------::-`  ```  ##    ##  ##    ##  ##
 +
            `----.-./+o+:..----.    `.:///. ########  ##    ## ##
 +
  ```        `----.-::::::------  `.-:::://. ##    ##  ##    ## ##  ####
 +
  ://::--.``` -:``...-----...` `:--::::::-.`  ##    ##  ##  ##  ##    ##
 +
  :/:::::::::-:-    `````      .:::::-.`    ##    ##    ####    ######
 +
  ``.--:::::::.                .:::.`
 +
        ``..::.                .::        EMBRACE THE APIs OF THE FUTURE
 +
            ::-                .:-
 +
            -::`              ::-                  VERSION 2.6.0
 +
            `::-              -::`
 +
              -::-`          -::-
 +
\########################################################################/
 +
 +
Copyright (C) 2016 Timothy Edmund Crosley
 +
Under the MIT License
 +
 +
 +
Serving on :8000...
 +
 +
</syntaxhighlight>
 +
 +
==Algunas diferencias entre Podman y Docker==
 +
*La primera diferencia que nos encontramos, respecto a Docker, es que Podman no tiene servicio.
 +
*Podman no hace uso de un demonio.
 +
*En podman, un usuario sólo puede ver y utilizar los contenedores y las imágenes que hayan sido creadas o descargadas por este mismo usuario. Por esto mismo,podemos hacer uso de podman sin ser necesariamente los administradores del sistema. Por esto mismo, si se descarga una imagen con el usuario por defecto, "sudo podman images" no la mostrará.
 +
 +
*Podman no posee todavía una herramienta de orquestación de contenedores oficial, ya que consideran que, por defecto, para esta tarea se emplea Kubernetes, para lo cuál Podman tiene comandos que facilitan su despligue con esta herramienta. Sin embargo, existe un proyecto third-party llamado [https://github.com/containers/podman-compose podman-compose], que trata de ser la solución a la sustitución de docker-compose.

Revisión actual del 21:25 29 ene 2020

A primera vista, Podman es muy similar a Docker. Tan parecido es su uso que, para usar los comandos de podman, tan sólo tendremos que usar los de Docker y cambiar la palabra "docker" por "podman". Si queremos hacer esta sustitución automática, de forma que, aun poniendo docker, funcione podman, ejecutamos el siguiente comando:

alias docker=podman

(recomendado en la propia página de podman: https://podman.io/whatis.html)

Descarga de podman

En primer lugar, procuraremos tener la máquina virtual actualizada:

dnf search update
sudo dnf upgrade

A continuación, ejecutanos:

sudo dnf install podman

Una vez descargado, podemos consultar más información haciendo:

man podman

Construir una imagen a partir de un fichero Dockerfile

Seguimos los mismos pasos que si creáramos una imagen a partir de un fichero con docker. Para ello, podman hace uso de los mismos Dockerfiles, sin hacer modificaciones. Lo podemos comprobar con el Dockerfile de ejemplo de aplicaciones hug usado aquí. Con un editor de textos, como nano (que no viene por defecto instalado en la versión 31 de Fedora).

Para descargar nano:

sudo dnf install nano

Dockerfile:

                                
FROM python:alpine

ENV USERNAME="username"
RUN mkdir /app
RUN pip install hug
COPY endpoint.py /app
WORKDIR /app
CMD hug -f endpoint.py

endpoint.py:

                                
FROM python:alpine

ENV USERNAME="username"
RUN mkdir /app
RUN pip install hug
COPY endpoint.py /app
WORKDIR /app
CMD hug -f endpoint.py

Dentro de la carpeta que contiene estos 2 archivos, para construir la imagen, ejecutamos el siguiente comando:

podman build -t app:v1 -f Dockerfile .

Comprobamos que se ha creado la imagen correctamente:

podman images

Iniciamos un contenedor a partir de nuestra nueva imagen:

podman run -ti app:v1

Si todo funcionó bien, debería aparecer por pantalla:

/#######################################################################\
          `.----``..-------..``.----.
         :/:::::--:---------:--::::://.
        .+::::----##/-/oo+:-##----:::://
        `//::-------/oosoo-------::://.       ##    ##  ##    ##    #####
          .-:------./++o/o-.------::-`   ```  ##    ##  ##    ##  ##
             `----.-./+o+:..----.     `.:///. ########  ##    ## ##
   ```        `----.-::::::------  `.-:::://. ##    ##  ##    ## ##   ####
  ://::--.``` -:``...-----...` `:--::::::-.`  ##    ##  ##   ##   ##    ##
  :/:::::::::-:-     `````      .:::::-.`     ##    ##    ####     ######
   ``.--:::::::.                .:::.`
         ``..::.                .::         EMBRACE THE APIs OF THE FUTURE
             ::-                .:-
             -::`               ::-                   VERSION 2.6.0
             `::-              -::`
              -::-`           -::-
\########################################################################/

 Copyright (C) 2016 Timothy Edmund Crosley
 Under the MIT License


Serving on :8000...

Algunas diferencias entre Podman y Docker

  • La primera diferencia que nos encontramos, respecto a Docker, es que Podman no tiene servicio.
  • Podman no hace uso de un demonio.
  • En podman, un usuario sólo puede ver y utilizar los contenedores y las imágenes que hayan sido creadas o descargadas por este mismo usuario. Por esto mismo,podemos hacer uso de podman sin ser necesariamente los administradores del sistema. Por esto mismo, si se descarga una imagen con el usuario por defecto, "sudo podman images" no la mostrará.
  • Podman no posee todavía una herramienta de orquestación de contenedores oficial, ya que consideran que, por defecto, para esta tarea se emplea Kubernetes, para lo cuál Podman tiene comandos que facilitan su despligue con esta herramienta. Sin embargo, existe un proyecto third-party llamado podman-compose, que trata de ser la solución a la sustitución de docker-compose.