Docker – Backup, Restore, Tagueo y Publicación de imágenes.

Es este último artículo dedicado a Docker se describirán los métodos más utilizados para el backup, restore, tagueo y publicación de imágenes.

Backup y Restore de imágenes

Una imagen que se encuentra en el cache de Docker puede ser guardada como un archivo tar usando el comando docker save. Este archivos tar no es uno convencional ya que contiene metada y conserva las capas de la imagen original, por lo cual es posible recrearla exactamente como era. El comando genérico es el siguiente.

Se pueden utilizar los siguientes comando para realizar el backup de imágenes.

Para hacer el restore de una imagen guardada en un archivo tar se debe utilizar el comando docker load.

Export e Import de contenedores

Para hacer un backup de contenedores en un archivo tar, se utiliza el comando docker export.

Para el restore de un contenedor que se exportó, es necesario utilizar el comando docker import. Este comando permite importar archivos locales y archivos remotos con los protocolas http:// y https://
Se puede utilizar la opción -c ( –change ) para aplicar cambios que pueden ser instrucciones dentro de un archivo Dockerfile.

Los siguientes comando son válidos para un restore de contenedores.

Recordar que import genera una nueva imagen en el caché de docker engine. Se puede listar con el comando docker images.

Borrar una imagen

Para borrar una imagen del cache de Docker, se debe utilizar el comando docker rmi. El comando genérico es el que sigue.

Para borrar una imagen es necesario que no se encuentre utilizada por algún contenedor. Usando la opción --force=true borrará una imagen que se encuentre funcionando en un contenedor.

Para borrar todas la imágenes que no se estén utilizando de una sola vez, se debe usar:

Modificando imágenes

Como dijimos, para crear una imagen es recomendable utilizar un Dockerfile. Pero existe la posibilidad de utilizar el comando docker commit para crear una imagen de un contenedor que se encuentra en ejecución. En modo general el comando es el siguiente.

El siguiente ejemplo muestra su utilización.

Con el comando dicker diff se pueden verificar los cambios que se produjeron en un contenedor a partir de su imagen inicial.

Para crear una nueva imagen que contenga estos cambios se puede utilizar el comando docker commit.

Publicar una imagen al Registry

Para enviar una imagen al registry, debe almacenarse en el caché de Docker y debe ser etiquetada (tagueada) con fines de identificación. Para «taguear» una imagen se utiliza el siguiente comando:

Por defecto, las imágenes se «taguean» con la etiqueta «latest».

Los siguientes comandos muestran como hacer uso de esta funcionalidad.

Para «taguear» una imagen con una etiqueta diferente se utiliza:

Cuando se «taguea» una imagen solamente se indica que la imagen con un ID en particular se marca con un nuevo tag de imagen. Por lo que una misma imagen puede tener más de un tag.

Para borrar etiquetas de las imágenes se utiliza el comando:

Para publicar la imagen creada en un registry, que puede ser público o privado, se utiliza el siguiente comando:

Para publicar una imagen en el hub de docker ( https://hub.docker.com) se debe tener una cuenta de usuario y renombrar la imagen incluyendo el nombre de imagen, como se muestra debajo.

Recordar que para poder publicar la imagen al hub de docker primero se debe hacer la autenticación del usuario. Debajo se muestran los pasos a seguir.

En el siguiente video se muestra la utilización de todos los comandos descritos anteriormente.

De este modo terminamos la serie de artículos dedicados a Docker como manejador de contenedores. Recuerden compartir en los comentarios experiencias y opiniones para poder compartir con los demás visitantes de este blog. De ese modo podemos incrementar nuestro conocimiento.

Los invito a que nos sigan en nuestro twitter (  @ApuntesIT ) y a nuestros canales de YouTube y Dailymotion.

Enlaces útiles

Docker: https://www.docker.com
Hub: https://hub.docker.com
Twitter: @ApuntesIT
YouTubehttps://www.youtube.com/channel/UCh_k8K1wP31GfOFdYJj5Eeg
Dailymotionhttp://www.dailymotion.com/apuntesit

Apuntes IT - Compartiendo conocimiento.
Tech Nerd theme designed by Siteturner
Share
Share