|
|
| (3 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}}
| + | |
| − | *{{Docker/Registro}}
| + | |
| − | | + | |
| − | ===Instalar Docker===
| + | |
| − | <br />
| + | |
| − | {{MRM_Web|Title=Instalar docker|
| + | |
| − | | + | |
| − | https://docs.docker.com/install/
| + | |
| − | Para ubuntu
| + | |
| − | https://docs.docker.com/install/linux/docker-ce/ubuntu/
| + | |
| | | | |
| | + | {{MRM_Objetivos|Title=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 |
| | }} | | }} |
| − | ;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}}
| |