Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Docker

Curso de Docker

Guido Vilariño

Guido Vilariño

Conceptos fundamentales de Docker: imágenes

16/32
Recursos

Aportes 25

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Profundizando en el concepto de imágen
Es bueno profundizar un poco más en el concepto de una imágen en Docker para entender su función, para posteriormente poder realizar una por nuestra cuenta desde 0, cuando no haya una imágenque cumpla con nuestras necesidades.
.
Imágen
Una imágen contiene distintas capas de datos (distribución, diferente software, librerías y personalización).
.
Podemos llegar a la conslusión, que una imágen se conforma de distintas capas de personalización, en base a una capa inicial (base image), la dicha capa, es el más puro estado del SO.
.
La siguiente ilustración nos mostraría la representación gráfica, del concepto de una imágen en Docker.

Si observamos, partimos desde la base del SO, y vamos agregando capas de personalización hasta obtener la imágen que necesitamos:

  1. distribución debian
  2. se agrega el editor emacs
  3. se agrega el servidor Apache
  4. se agregan los permisos de escritura para la carpeta /var/www de Apache

Hay que tener en cuenta, que todo parte del Kernel de Linux, en caso de utilizar alguna distrubución de Linux
.

Historico de una imágen
Podemos observar la historia de nuestra imágen, con el siguiente comando

$ docker history [imagen]

De esta manera podemos ver las capas de personalización que fuerón agregadas, para la construcción de la imágen que conocemos.

Comandos:

$ docker image ls (veo las imágenes que tengo localmente)
$ docker pull ubuntu:20.04 (bajo la imagen de ubuntu con una versión específica)

**Comandos de la clase"""

Descargar imágenes en el host

  1. Descarga la última versión disponible
docker pull [imageName]  
  1. Descarga una versión específica
docker pull [imageName]:[versionImage]

yo tenía como 15 imagenes que tenia de cosas anteriores, para borrar imagenes puedes hacer un:

docker image prune -a

Ver las imágenes descargadas en el host

docker image ls    ó    docker images

Una analogía para las imàgenes es:
Una imagèn es como una clase y el contenedor es un objeto de la clase

Images
It is the way how docker tries to solve the problems of building and deployment software.
An image is a read-only template with instructions for creating a Docker container. Often, an image is based on another image, with some additional customization. For example, you may build an image which is based on the ubuntu image, but installs the Apache web server and your application, as well as the configuration details needed to make your application run.

$ docker image ls

<h1>To list all the images in the system</h1>

$ docker pull [image_name]:[tag_version]
$ docker pull ubuntu:20:04

<h1>To download an specific image’s version</h1>

16. Conceptos fundamentales de Docker: imágenes
¿Qué son las imágenes?
Son moldes o plantillas que tienen empaquetado todo lo necesario para funcionar. Docker usa estás misma para construir contenedores.
¿Para qué sirven las imágenes en la construcción de software?
Las imágenes sirven para crear contenedores y también es como docker intenta solucionar el problema de construcción de y distribución de software.


$ sudo docker image ls
Listar imágenes locales de docker. Esta instrucción de terminal mostrará las siguientes columnas

  • TAG:
    Es la version de la imagen, cuando no especificamos que versión de descargar docker asume que es la última
  • CREATE AT:
    tiempo de creación
  • SIZE:
    Tamaño de la imagen
  • IMAGE ID:
    Este es el identificador de la imagen. Si descargamos dos imágenes que son iguales al realizar un pull, docker lo que hará es tener un puntero lógico a la misma imagen ya descargada y no descargará la otra imagen. Existe la posibilidad que tenga TAG diferentes, pero serán la misma imagen. Esto último se puede comprobar viendo el IMAGE ID, debería ser los mismos.

$ sudo docker pull
Si no colocamos un parámetro después de pull entenderá que deberá realizar la descarga de docker hub. EL parámetro extra después de pull es para indicarle el repositorio

Uno de los grandes beneficios de docker pull, es que nos permite tener diferentes versiones de una misma imagen madre, por ejemplo.
*ubuntu 20:04
*ubuntu 16.04

Las imágenes son plantillas del cual Docker crea contenedores

Listar imágenes

docker image ls

Especifica la versión(tag) de la imagen que se quiere descargar de Docker Hub
docker pull ubuntu:21.04

La imagen de Linux ALPINE pesa poco más de 5mb.

Es muy buena para correr un Linux minimalista y hacer pruebas.

  • Las imágenes en docker, son templates de contenedores, que son inmutables. Una vez creada no la podemos cambiar.
  • Las imágenes cuentan tags, que es la forma en la que podemos saber cual es la versión de nuestra imagen.
  • Las imágenes se componen de varias capas, no es único archivo. Cada capa es inmutable, cada capa representa el cambio que ha tenido la imagen desde la capa base, muy parecido al GIT.
  • docker image ls, para listar las imágenes que tenemos
  • docker pull imagename, para traer una imagen de docker hub hacia nuestro sistema.
  • docker pull imagename:tag, para traer la imagen con un tag específico.

Imágenes: son platillas o moldes que a partir de docker crea contenedores
Contenedor: es un proceso que se crea atreves de una imagen

Excelente la analogía de la POO con las imágenes y contenedores.

El Tag de la imagen nos proporciona información acerca de la versión, también puede ser visto como un “alias” del IMAGE ID.

Otro punto a tomar en cuenta es que la Tag “latest” no necesariamente se refiere a la última versión de la image, en un escenario ideal así debería ser, es responsabilidad del desarrollador que dicha etiqueta corresponda a la versión más estable de la imagen. Sin embargo la etiqueta “latest” es una etiqueta que se coloca por default cuando no se especifica alguna otra textualmente.

Imagenes: Como docker intenta solucionar los problemas de construcción y distribución, es una pieza de SW que contiene todo lo necesario para que un contenedor pueda ejecutarse exitosamente, todo lo que necesita el contenedor esta dentro de una imagen.

Las imagenes son las plantillas a partir de las cuales vamos a crear contenedores nuevos.

  1. Que imagenes tenemos en el entorno local
docker image ls

De donde descarga docker los volumenes?
De docker hub: https://hub.docker.com/

  1. Traer una imagen
docker pull ubuntu:20.04

Si verificamos en image ls tienen el mismo id los volumenes de ubuntu, esto no quiere decir que son lo mismo, serian como punteros, incluso tendrian los mismos archivos, ocupan el mismo tamaño, es solo un puntero logico a la verdadera imagen, podemos ver la eficiencia de docker en este aspecto.

https://docs.microsoft.com/es-es/dotnet/architecture/microservices/container-docker-introduction/docker-containers-images-registries

Entendido

Para borrar el tag de 20.04 ----->Docker image rm ubuntu:20.04

Este comando sirve para descargar una imagen :docker pull nombreImagen:tagDeImagen

Lista las imagenes que tenemos: docker image ls

Exclente que el profesor habla de los problemas que trata de resolver las imagenes vs los contenedores , esto hace mucho mas entendible todo .

las imagenes en docker

es como gestiona las librerias y recursos que se necesitan para que funcione la aplicacion propia

Hasta ahora solo se ha hablado de contenedores, pero esto no es más que cómo Docker soluciona la ejecución de código.

Las Imagenes

  • Es como Docker soluciona la construcción y distribución de software

  • Las imágenes son plantillas o moldes a partir las cuales Docker crea contenedores

  • Es una pieza de software empaquetada de forma liviana que contiene todo lo necesario para que un contenedor pueda ejecutarse exitosamente

  • Relación contenedor/imagen es lo que en POO serían una instancia de la clase y la clase

Codigo

  • Para ver todas las imágenes en nuestro entorno local
docker image ls
  • Traer una imagen desde un repositorio externo hacia mi máquina. Por defecto utiliza docker hub
docker pull <docker_image>:<version>