Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Docker»

De WikiEducator
Saltar a: navegación, buscar
(Instalar Docker)
 
(4 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
[[Usuario:ManuelRomero/NewPHP|Volver]]
+
{{Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Docker/nav}}
{{TEP}}
+
  
*{{Docker/conceptosGenerales}}
+
{{MRM_Objetivos|Title=Objetivos de este tema|
*{{Docker/Registro}}
+
;Qué es docker
 
+
*Entender de forma intuitiva qué es docker desde el punto de vista del programador
===Instalar Docker===
+
*Entender qué es un contenedor
<br />
+
*Ver las diferencias entre un contenedor y una máquina virtual
{{MRM_Web|Title=Instalar docker
+
;Instalar
<nowiki>
+
*Instalar docker
https://docs.docker.com/install/
+
*Crerar contenedores a partir de imágenes
Para ubuntu
+
*Instalar servicios en los contenedores
  https://docs.docker.com/install/linux/docker-ce/ubuntu/
+
*Crear una imagen a partir de un contenedor
</nowiki>
+
*Copiar un contenedor en un fichero tar para desplegarlo a otra máquina
 +
;Hacer una app usando docker como servidor web
 +
*Crear una app para multidiomas usando gettext
 +
*Hacer dockerizado, es decir, el servidor web en un docker
 
}}
 
}}
;Pasos a realizar
 
1.- Desinstalar versiones antiguas
 
<source lang=bash>
 
sudo apt-get remove docker docker-engine docker.io containerd runc
 
</source>
 
*Verificar versión de ubuntu
 
<source lang=bash>
 
lsb_release -a
 
</source>
 
*Agregamos la clave GPG para poder acceder al repositorio oficial de Docker desde nuestra utilidades '''''apt-get'''''
 
<source lang=bash>
 
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
 
</source>
 
*Añadimos el nuevo fuente de repositorio de docker a nuestro '''''sources'''''
 
<source lang=bash>
 
sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
 
</source>
 
*Acutalizamos el origen de los paquetes en nuestro sistema
 
<source lang=bash>
 
  sudo apt-get update
 
</source>
 
*Porcedemos a instalar
 
<source lang=bash>
 
sudo apt-get install -y docker-engine
 
</source>
 
*Ahora para poder ejecutar docker el usuario actual sin usar sudo
 
*Creamos el grupo de docker si no existe
 
<source lang=bash>
 
sudo groupadd docker
 
</source>
 
*Agragamos el usuario actual ( u otro si queremos que sea otro) al grupo de docker
 
<source lang="bash">
 
sudo gpasswd -a $USER docker
 
</source>
 
*Para ver todos los comando
 
<source lang=bash>
 
docker help
 
</source>
 
 
===Contenedor Vs Imagen===
 
*Este es un concepto importante que puede quedar claro si vemos la imagen anterior
 
*La imagen es el fichero que nos va a permir instalar esta '''especie de máquina virtual'''.
 
*Es como el iso para instalar el sistema operativo
 
*El contenedor es el sistema corriendo con el cual podemos interactuar. Se instala a partir de una imagen
 
*Lo bueno que tiene docker es que 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. En la sección siguiente realizaremos estas acciones.
 
===Acciones concretas===
 
;Crear un contenedor a partir de una imagen del repositorio
 
{{MRM_Puntos clave|Title=Crear un contenedor|
 
;run}}
 
<source lang="bash">
 
  sudo docker run --name dwes -ti ubuntu:14.04
 
</source>
 
-ti es para dejar abierto el contenedor creado de forma '''''i'''''nteractiva y en '''''t'''''erminal
 
--name para dar un nobmre al contenedor creado (si no lo hacemos crea uno por defecto
 
*Hay otros muchos comandos disponibles, verlos con el comando
 
<source lang=bash>
 
docker help run
 
</source>
 
;Ver los contenedores del sistema
 
<source lang="bash">
 
  docker ps -a
 
</source>
 
;Ver los las imágenes  del sistema
 
<source lang="bash">
 
  docker ps -a
 
</source>
 
 
 
;Modificar un contenedor
 
*Una vez abierto el contenedor podemos proceder a instalar cosas.
 
*Por ejemplo podemos realizar toda la instalación de apache en el contenedor atenrior
 
apt-get install apache2
 
*Instalar también el php siguiendo las acciones ya realizadas al principio de curso
 
;Crear una imagen en local a partir de un contenedor
 
{{MRM_Puntos clave|Title=Crear una imagen|
 
;commit}}
 
*Igual que en git
 
<source lang="bash">
 
  docker commit -m "imagen  con apache" -a "Manuel Romero <manuelromeromiguel@gmail.com>
 
</source>
 
*Puedo poner un repository/tag que es como un identificador a la imagen creada
 
*Los dos nombre indentifican la imagen
 
 
docker images (Para ver la imagen y su identificador (ID)
 
docer tag ID manuel/apache_v1.0
 
 
 
;Ver imágenes y contenedores
 
<source lang="bash">
 
  docker images  //ver imagenes
 
  docker ps -a  //Ver contenedores
 
</source>
 
;Arrancar un contenedor
 
;Crear una imagen en local a partir de un contenedor
 
{{MRM_Puntos clave|Title=Crear un contenedor|
 
;start
 
;exec
 
}}
 
*Una vez cerrado el contenedor (no parado), éste sigue estando disponible
 
*Para usarlo hay que realizar dos acciones
 
<source lang=bash>
 
~ ➭  docker start  dwes
 
dwes
 
~ ➭  docker exec -ti dwes /bin/bash
 
root@496b9ba15066:/#
 
</source>
 
 
:Crear un contenedor a partir de una imagen en local
 
*Con el comando run, pero especificando la imagen local
 
:Crear un contenedor con un volumen lógico a partir de una imagen en local
 
*Para ello usamos el parámetro -v
 
<source lang=bash>
 
docker run --name nombre_contenedor_nuevo -v /var/www/iternova:/var/www -dti nombre_imagen
 
</source>
 
 
*{{Docker/comandosImágenes}}
 
*{{Docker/comandosContenedor}}
 
*{{Docker/volumenesYCopiarContenedorHost}}
 

Última revisión de 05:22 15 mar 2019




Icon objectives.jpg
Objetivos de este tema
Qué es docker
  • Entender de forma intuitiva qué es docker desde el punto de vista del programador
  • Entender qué es un contenedor
  • Ver las diferencias entre un contenedor y una máquina virtual
Instalar
  • Instalar docker
  • Crerar contenedores a partir de imágenes
  • Instalar servicios en los contenedores
  • Crear una imagen a partir de un contenedor
  • Copiar un contenedor en un fichero tar para desplegarlo a otra máquina
Hacer una app usando docker como servidor web
  • Crear una app para multidiomas usando gettext
  • Hacer dockerizado, es decir, el servidor web en un docker