Usuario:ManuelRomero/ProgramacionWeb/Docker/contenedorVsImagen
De WikiEducator
< Usuario:ManuelRomero | ProgramacionWeb/Docker
Revisión a fecha de 06:31 7 nov 2022; ManuelRomero (Discusión | contribuciones)
Saltar a: navegación, buscar
BLOQUE 2 PHP: PROGRAMACIÓN ORIENTADO A OBJETOS
¡Construyendo componentes!
Docker y programación web
Conceptos Generales | Imágenes y contenedores | Docker Composer | DockerFile |
PhpStorm-xdebug-docker | Práctica | Ambiente de desarrollo | Volver
- La imagen
- La imagen es el fichero que nos va a permitir instalar esta especie de máquina virtual.
- No se emula hardware, sino solo servicios (software: sistema de ficheros, sistema operativo y servicios), por lo que un conetenedor no es una máquina, aunque sí que tenga una ip. Sí que se puede ver como un dispositivo o nodo de la red independiente.
- Podríamos hacer una comparación con la iso para instalar el sistema operativo, pero solo para tener una idea, ya que el concepto es diferente.
- El contenedor
- El contenedor será el software que corresponde al sistema corriendo con el cual podemos interactuar. Se instala a partir de una imagen y siempre dependerá de ella, es decir, no podremos eliminar la imagen mientras tenga un contenedor asociado.
- En realidad el contenedor almacena los cambios que haya sobre la imagen y todo va siendo pequeños incrementos sobre un fichero base, lo que se vuelve un sistema muy robusto, ágil y ligero.
- Contenedor Vs Imagen
- También, a partir de un contenedor podemos crear una imagen con todo el software que tenga ese contenedor.
- Cuando volvamos a desplegar la imagen creada en otro contenedor, tendremos disponible todo el software incluido.
Crear un contenedor
- Hay varias formas de crear un contenedor, y vamos poco a poco a aprenderlas según vayamos necesitando
- Lo primero que tendremos que hacer es descargar una imagen.
(: El nombre de las imágenes y de los contenedores consta de nombre:tag)
docker pull ubuntu:latest
(: Cuando creamos un contenedor (siempre a partir de una imagen), si esta no existe en local, intentará localizarla en la nube y la descargará, por lo que no necesitaremos hacer un pull de la misma )
- docker run
- Permite crear y arrancar un contenedor
- En realidad ejecuta un comando en un nuevo contenedor, por lo tanto lo crea.
- Creando un contenedor a partir de una imagen del repositorio
- Vamos a crear un contenedor a partir de la imagen ubuntu:latest;
- Existe un repositorio de imágenes en la nube donde el comando docker va a ir a buscarlas cuando las necesite https://hub.docker.com/.
- Podemos registrarnos, como en git', y aportar las imágenes que creemos (lo veremos a continuación)
docker run ubuntu:latest
(: Este comando habrá creado un contenedor)
- Ver todos los contenedores docker ps -a
- Podemos ver todos los contenedores
docker ps -a
- Si no damos la opción -a solo se visualziarán los contenedores activos
- Borrando un contenedor
- docker rm
- Como el contenedor tiene un nombre que el sistema le ha dado, vamos a borrarlo y crear otro asignando un nombre
docker rm <nombre_del_contenedor>
- Borrando una imagen
- docker rmi
- Igualmente podríamos elminar una imagen de nuestro sistema.
(: Si existe algún contenedor que dependa de esa imagen, no se podrá borrar)
docker rmi <nombre_de_la_imagen>
- Para ver los nombres de las imágenes en mi sistema (actualmente descargados)
docker images
- Crear un contenedor asignando el nombre
- docker run --name nombre
docker run --name web ubuntu:latest
- Lo visualizamos
docker ps -a
- Terminal en el contenedor
- interactivamente: docker run -ti ..../span>
- Con el contenedor creado previamente podemos ejectura acciones, pero si queremos interactuar con él, debemos de permitir abrir un terminal y establecer interacción
- Para ello hemos de aportar el parámetro -t para poder abrir terminal y -i para interactuar
docker run -ti --name web ubuntu:latest
</div>
- Ahora para abrir un terminal, ejecutamos el comando bash
docker run -ti --name web ubuntu:latest
- Vamos a instalar en el contenedor los paquetes que necesito para nuestra arquitectura web:
- Apache
- PHP
- xdebug
docker run -ti --name web ubuntu:latest
3.-El nombre del contenedor lop doy explícito -name idioma
4.-La crearemos con un volumen mapeando el directorio /var/www/html del contenedor con /var/www/idioma de mi anfitrión -v /var/www/html:/var/www
</div>
- 1.- comando run:ej. Descargar una imagen llamada ubuntu:latest
- 2.-#fichero yml con docker-composer .
docker-composer up
Obtener o Crear una Imagen
- Para obtener una imagen, la podemos descargar de la nube o bien construirla a partir de otra imagen o de un contenedor:
- pull para abtener una imagel
- Fichero Dockerfile' con el comando build para construir a partir de otra imagen
docker build .
- Comando commit a partir de un contenedor con todo lo que tenga instalado
docker commit contenedor:v1 - .
- Comando import a partir de un fichero tar previamente creado de un contenedor con el comando export,
docker export contenedor.tar