Hemos visto como obtener imágenes pre-preparadas con contenidos personalizados, ahora vamos a ver como crear nuestras propias imágenes. Hay dos formas de crear una imagen de Docker:
- A través del comando “docker commit”.
- Con el comando “docker build” con un Dockerfile.
El método “docker commit” actualmente no se recomienda, porque se considera el método de construcción utilizando un Dockerfile mucho más flexible y potente.
Usando Docker commit para crear imágenes
Usando Docker commit para crear imágenes
El primer método de creación de imágenes usa el comando “docker commit”. Podemos pensar en este método como cuando hacemos un commit en un sistema de control de versiones. Creamos un contenedor, realizamos cambios en ese contenedor como cambiar de código, instalar componentes adicionales etc.. , y a continuación, confirmar esos cambios en una nueva imagen.
Vamos a empezar por la creación de un contenedor de la imagen Ubuntu.
$ docker run -i -t ubuntu /bin/bash
Ahora instalaremos apache en nuestro contenedor
root@89cf3d6c0f10:/# apt-get -yqq update
root@89cf3d6c0f10:/# apt-get -y install apache2
Hemos ejecutado nuestro contenedor y luego instalamos Apache dentro de él. Vamos a utilizar este contenedor como un servidor web, por lo que vamos a querer guardarlo en su estado actual. Eso nos ahorrará tener que reconstruirlo con Apache cada vez que creemos un nuevo contenedor. Para salir de este contenedor utilizamos “exit” y usaremos el comando “docker commit”
$ docker commit 89cf3d6c0f10 nacionrosique/apache2
Podemos ver que hemos utilizado el comando “docker commit” y especificamos el ID del contenedor, así como un repositorio de destino y nombre de la imagen jalapuente/apache2. Es de destacar que el comando “docker commit” sólo graba las diferencias entre la imagen de la cual el contenedor fue creado y el estado actual, esto significa que los cambios son mínimos.
Vamos a ver nuestra nueva imagen:
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
nacionrosique/apache2 latest 1316d227367f 23 seconds ago 223.7 MB
Podemos proveer más información sobre los datos y cambios cuando guardemos nuestra imagen, por ejemplo:
$ docker commit –m “una nueva imagen de apache” –a “NacionRosique” 89cf3d6c0f10 nacionrosique/apache2:servidorweb
Aquí hemos especificado un poco más de información, mientras que grabamos nuestra nueva imagen. Hemos añadido la opción -m, que nos permite guardar un mensaje de confirmación que explica nuestra nueva imagen. También hemos especificado la opción -a para listar el autor de la imagen. A continuación, hemos especificado el ID del contenedor que estamos guardando. Por último, hemos especificado el nombre de usuario y el repositorio de la imagen, jalapuente/ apache2, y hemos añadido una etiqueta, “servidorweb”, a nuestra imagen.
Podemos ver esta información sobre nuestra imagen usando el comando “docker inspect”.
$ docker inspect nacionrosique/apache2:servidorweb
Si queremos ejecutar un contenedor desde nuestra nueva imagen, debemos utilizar el comando “docker run”.
$ docker run –t -i nacionrosique/apache2:servidorweb /bin/bash
No hay comentarios:
Publicar un comentario