En el post anterior hable de como instalar docker, ya sea desde Internet o desde los repos de sld, bueno este es sobre como crear una imagen base para todos nuestros containers, ya que no podemos usar el dockerhub que es donde están las imágenes de docker por estar cerrado para cuba 🙁
Recuerden siempre (soy fan de debian :D) todo esto es para debian, lo primero sera instalar debootstrap.
apt install debootstrap
Una vez instalado esto pues mandamos a crear un base de debian de la versión que mas nos interese con este método también podemos hacer imágenes de ubuntu en caso de que nos interese mas que debian.
debootstrap jessie jessie http://download.jovenclub.cu/repos/debian/
Luego ponemos esto, creamos la imagen base de esta manera
tar -C jessie -c . | docker import - debian:jessie
ahora si ponemos docker images
tendremos el listado de imagen que hay en el sistema que en nuestro caso seria solo una. Una vez echo todo esto ya tenemos nuestra imagen base para empezar a usarla. Creamos un container base para ver si funciona.
docker run -it --rm=true debian:jessie /bin/bash
Las opciones para crear un container son muchas, pero voy a explicar solo las que están puestas aquí.
- -it (Modo interactivo y terminal con el conatiner)
- –rm=true (Una vez que salgamos del container que docker se encargue de borrarlo)
Buenos esto es todo por ahora, ya solo que da que lo prueben y me pregunten que les gustaría hacer con docker o que servicio les gustaría hacer un container.
Una duda sobre docker, yo creo mi imagen base «debian:jessie» y creo 5 containers que heredan de esa base, digamos que la semana sale un bug en libc y hay que actualizar, como sería el proceso? Actualizo el bootstrap y creo la imagen base y ya las descendientes cogen el update en caliente o algo más?
Interesante tu pregunta, si quieres puedes hacerlo como me dices de crear la imagen base otra vez y una vez echa el resto de tus container heredan de esa lo único que tienes que hacer es un re-deploy de tus container y listo, la otra es cargar el base como explico aquí sin la opción –rm=true y tan fácil una vez dentro del container poner apt update && apt upgrade -y una vez actualizado el container pues sales con Ctrl+D y el se queda en estado exit lo puedes ver con docker ps -a y pones esto en la consola docker commit -m «Debian update libc bug fix» id_container debian:jessie. Espero que esto responda tu pregunta, si tuvieras mas dudas sin problemas puedes preguntar.
Thanks! Ya entiendo mejor la lógica, esto parece un híbrido de lxc con git.
Esa es la idea, docker es basado en lxc pero imagina un lxc vitaminado, con muchas funcionalidades ademas de una interface nice, docker esta escrito en golang el lenguaje de google. ya estoy creando el siguiente post
docker….el todopoderoso docker, si lo integras con proxmox, de lujo. Tal vez nadie lea esto pero desearía recomendar el portainer. Una webgui para docker. Puedes descargarte la imagen docker pull portainer/portainer, ejecutarlo dentro de la red interna de docker y pubicarlo a través de un haproxy local. Recomendado para complementar la cli. Saludos.