Custom image con commit
pasos:
iniciar un contenedor desde una imagen base
Instalar git en el contenedor
Hacer commit de los cambios en el contenedor
Iniciamos el contenedor de manera interactiva con -it y vamos a usar la imagen oficial de debian en su versión stretch, además indicamos al final bash para poder teclear comandos de instalación dentro de el contenedor
docker run -it debian:stretch bash
ahora podemos teclear comandos dentro del contenedor por ejemplo actualizar el repositorio de herramientas:
root@b27ca759bdd7:/# apt-get update
no es necesario sudo , los comandos dentro del contenedor usan el usuario root por default.
Ahora podemos instalar cualquier herramienta incluyendo las dependencias de la aplicación que se quiere hacer, en este caso instalamos git:
root@b27ca759bdd7:/# apt-get install git
podemos verificar que se intaló correctamente git:
root@b27ca759bdd7:/# git --version
para continuar en la creación de nuestra custom image de docker vamos a necesitar el id del contenedor que venimos trabajando y al cual le instalamos git, para ello en otra instancia del terminal consultamos los contenedores con estado "Up":
docker ps
tomamos el id y ejecutamos con el nombre que queremos ponerle a la nueva imagen <name-container>:
docker commit b27ca759bdd7 git:2.11.0
git:2.11.0 con esto le estamos dando el nombre de git a nuestra imagen y le estamos dando un tag 2.11.0 que corresponde a la versión que se instaló de git. Si ahora revisamos las imágenes que están en la maquina debe salir la nueva recientemente creada:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
git 2.11.0 8a3086f8b36b 5 seconds ago 218MB
Ahora podemos usar la imagen que personalizamos, antes podemos salir del contenedor inicial con exit y creamos uno nuevo con la imagen git:2.11.0:
docker -it git:2.11.0 bash
podemos probar que ya tiene instalada una version de git dentro con :
git --version
En las imágenes personalizadas podemos instalar cualquier herramienta que necesitemos para el desarrollo de las aplicaciones que queramos corren en el contenedor.
Last updated
Was this helpful?