Autor: GONZÁLEZ RODRÍGUEZ, Alberto
Páginas: 256
Coedición: Alfaomega, RC Libros
$26.120
Autor: GONZÁLEZ RODRÍGUEZ, Alberto
Páginas: 256
Coedición: Alfaomega, RC Libros
Compra en hasta 12 pagos mensuales sin usar tarjeta de crédito
¿Tienes dudas? Consulta nuestra FAQ . Crédito sujeto a aprobación.
El presente libro se constituye como una guía práctica para que el lector cuente con los elementos necesarios para la administración de Docker y el manejo de aplicaciones a través de contenedores. Docker es una forma de acceder a la tecnología de contenedores, y tiene como propósito facilitar la creación y manipulación de los contenedores. En la actualidad Docker es uno de los proyectos más populares que tiene el apoyo de empresas para su desarrollo y evolución.
En esta era de la virtualización han surgido distintas tecnologías que tienen como función principal el ahorro en los costes de las empresas, así como el aumento de sus prestaciones; es en este contexto en el que surge con fuerza Docker como una solución para las nuevas necesidades que traído consigo el Big Data. Este documento aborda temas que van desde la instalación hasta la administración más avanzada, complementados con una gran variedad de ejemplos.
VENTAJAS
• La instalación de Docker se explica tanto para sistemas Linux, Windows y OSX.
• Cuenta, a lo largo de su exposición, con elplicaciones claras y concisas y ejemplos reales.
CONOZCA
• En qué consiste la instalación de Docker en Linux, OS X y Windows.
• El proceso de creación de una imagen mediante Docker.
• Las ventajas y desventajas de cada una de los drivers de almacenamiento que nos proporciona Docker.
APRENDA
• A crear, ejecutar e inspeccionar contenedores.
• A asignar etiquetas a cada uno de los objetos de Docker y utilizar el filtrado.
• A limitar los recursos que un contenedor puede utilizar: memoria, procesador o entrada/salida de disco
DESARROLLE SUS HABILIDADES PARA
• Convertir un contenedor en una imagen y publicar una imagen en el repositorio oficial.
• Utilizar el Docker Compose para definir y ejecutar contenedores basados en una plantilla.
• Aplicar las diversas funciones que ofrece Docker Cloud y Docker Hub.
A QUIÉN VA DIRIGIDO
Este libro está dirigido a lectores que deseen iniciarse en Docker o que tengan actualmente conocimientos y quieran profundizar en ellos.
Índice
Prefacio ………………………………………………………………………………………………………………. XI
Capítulo 1: Introducción …………………………………………………………………………………………. 1
Contenedores vs virtualización …………………………………………………………………………………. 2
Docker al rescate …………………………………………………………………………………………………….. 4
El futuro…………………………………………………………………………………………………………………. 6
Contenido de un contenedor ……………………………………………………………………………………. 7
Imágenes ……………………………………………………………………………………………………………….. 9
Componentes ……………………………………………………………………………………………………….. 10
Capítulo 2: Instalación ………………………………………………………………………………………….. 13
Instalación en Linux (Versión comunitaria) ……………………………………………………………….. 13
Instalación automática ……………………………………………………………………………………… 13
Ubuntu ……………………………………………………………………………………………………………. 14
Debian ……………………………………………………………………………………………………………. 15
CentOS y Red Hat Enterprise Linux ……………………………………………………………………… 17
Fedora …………………………………………………………………………………………………………….. 19
Instalación en Linux (Versión empresarial) ……………………………………………………………….. 20
Red Hat Enterprise Linux ………………………………………………………………………………………….. 20
SUSE Linux Enterprise ………………………………………………………………………………………………..21
Habilitar e iniciar servicio ………………………………………………………………………………….. 23
Instalación en OS X ………………………………………………………………………………………………… 23
Instalación en Windows (Version comunitaria) ………………………………………………………….. 25
Instalación en Windows Server (Version empresarial) ………………………………………………… 27
docker info …………………………………………………………………………………………………………… 28
Capítulo 3: Primeros pasos ……………………………………………………………………………………. 29
Ejecutar primer contenedor ………………………………………………………………………………. 29
Inspeccionar un contenedor ………………………………………………………………………………. 32
Contenedor en modo interactivo ……………………………………………………………………….. 33
Contenedor en segundo plano …………………………………………………………………………… 34
Detener contenedor …………………………………………………………………………………………. 36
Iniciar contenedor ……………………………………………………………………………………………. 36
Exponer puertos ………………………………………………………………………………………………. 37
Capítulo 4: Contenedores ……………………………………………………………………………………… 41
Crear contenedores sin ejecutarlos…………………………………………………………………….. 41
Acciones básicas sobre contenedores ………………………………………………………………. 42
start [opciones] contenedor ………………………………………………………………………….. 43
attach [opciones] contenedor ……………………………………………………………………….. 43
stop [opciones] contenedor ………………………………………………………………………….. 44
restart [opciones] contenedor ………………………………………………………………………. 44
rename contenedor nuevo_nombre ……………………………………………………………… 44
ps [opciones] ………………………………………………………………………………………………. 44
logs [opciones] contenedor …………………………………………………………………………… 45
pause/unpause contenedor …………………………………………………………………………. 46
kill [opciones] contenedor …………………………………………………………………………….. 46
top contenedor [opciones ps] ……………………………………………………………………….. 47
rm [opciones] contenedor …………………………………………………………………………….. 47
exec [opciones] contenedor comando ……………………………………………………………. 47
run/create [opciones] imagen comando ………………………………………………………… 48
Copia de seguridad ………………………………………………………………………………………… 50
Restaurar ……………………………………………………………………………………………………… 50
Inspeccionando contenedores ………………………………………………………………………… 50
Obteniendo estadísticas de uso……………………………………………………………………….. 56
Obteniendo eventos desde el servidor …………………………………………………………….. 56
Capítulo 5: Imágenes ……………………………………………………………………………………………. 59
Introducción ……………………………………………………………………………………………………. 59
Listar imágenes ……………………………………………………………………………………………….. 59
Buscar imágenes en el repositorio oficial ……………………………………………………………. 60
Descargar imagen …………………………………………………………………………………………….. 62
Historial de una imagen ……………………………………………………………………………………. 63
Copia de seguridad …………………………………………………………………………………………… 64
Restaurar ………………………………………………………………………………………………………… 65
Eliminar una imagen ………………………………………………………………………………………… 65
Convertir un contenedor en una imagen …………………………………………………………….. 66
Etiquetado de imágenes……………………………………………………………………………………. 68
Publicar una imagen en el repositorio oficial ……………………………………………………….. 69
Repositorio local ………………………………………………………………………………………………. 70
Configurar repositorio ………………………………………………………………………………………………. 74
Capítulo 6: Generar imágenes ………………………………………………………………………………… 79
Dockerfile ……………………………………………………………………………………………………….. 79
FROM ………………………………………………………………………………………………………… 83
MAINTAINER ………………………………………………………………………………………………. 83
RUN ………………………………………………………………………………………………………….. 83
CMD ………………………………………………………………………………………………………….. 84
EXPOSE ……………………………………………………………………………………………………… 85
ADD …………………………………………………………………………………………………………… 85
COPY …………………………………………………………………………………………………………. 87
ENTRYPOINT ………………………………………………………………………………………………. 87
VOLUME …………………………………………………………………………………………………….. 88
USER ………………………………………………………………………………………………………….. 89
WORKDIR …………………………………………………………………………………………………… 90
SHELL …………………………………………………………………………………………………………. 90
LABEL ………………………………………………………………………………………………………… 91
ENV …………………………………………………………………………………………………………… 91
ARG …………………………………………………………………………………………………………… 92
HEALTHCHECK …………………………………………………………………………………………….. 93
Ejemplo …………………………………………………………………………………………………………… 93
Capítulo 7: Redes ………………………………………………………………………………………………… 95
Introducción ……………………………………………………………………………………………………. 95
Redes predefinidas ………………………………………………………………………………………… 95
Listar redes ……………………………………………………………………………………………………. 96
Crear red ………………………………………………………………………………………………………. 97
Crear red con rango autogenerado …………………………………………………………………… 97
Crear red con rango específico ………………………………………………………………………… 98
Crear red sin acceso al exterior ………………………………………………………………………… 98
Especificar red al crear un contenedor ……………………………………………………………… 98
Inspeccionar red ……………………………………………………………………………………………. 99
Conectar y desconectar contenedor a/de una red ……………………………………………. 100
Eliminar una red …………………………………………………………………………………………… 102
Capítulo 8: Almacenamiento ……………………………………………………………………………….. 103
Introducción ………………………………………………………………………………………………….. 103
AUFS …………………………………………………………………………………………………………… 106
OverlayFS/OverlayFS2 …………………………………………………………………………………… 109
Device mapper …………………………………………………………………………………………….. 111
Brtfs …………………………………………………………………………………………………………… 117
ZFS ……………………………………………………………………………………………………………… 121
Volúmenes ………………………………………………………………………………………………….. 124
Plugins para volúmenes ………………………………………………………………………………… 129
Capítulo 9: Etiquetas ………………………………………………………………………………………….. 133
Introducción ………………………………………………………………………………………………….. 133
Contenedores ……………………………………………………………………………………………… 133
Imágenes …………………………………………………………………………………………………….. 135
Volúmenes ………………………………………………………………………………………………….. 137
Redes …………………………………………………………………………………………………………. 137
Capítulo 10: Limitar recursos ……………………………………………………………………………….. 139
Introducción ………………………………………………………………………………………………….. 139
Memoria …………………………………………………………………………………………………….. 139
Procesador ………………………………………………………………………………………………….. 143
Almacenamiento: Entrada/Salida (I/O) …………………………………………………………… 145
docker update……………………………………………………………………………………………… 148
Capítulo 11: Registros …………………………………………………………………………………………. 151
Logging drivers ………………………………………………………………………………………………. 151
json-file ……………………………………………………………………………………………………. 153
syslog ………………………………………………………………………………………………………. 154
journald …………………………………………………………………………………………………… 156
gelf ………………………………………………………………………………………………………….. 157
fluentd …………………………………………………………………………………………………….. 158
awslogs ……………………………………………………………………………………………………. 160
splunk ………………………………………………………………………………………………………………. 161
etwlogs ……………………………………………………………………………………………………. 162
gcplogs …………………………………………………………………………………………………….. 162
Capítulo 12: Docker Compose ………………………………………………………………………………. 165
Introducción ………………………………………………………………………………………………….. 165
Instalación ………………………………………………………………………………………………….. 167
Primeros pasos ……………………………………………………………………………………………. 168
Acciones básicas ………………………………………………………………………………………….. 171
up [opciones] [servicio] ………………………………………………………………………………. 171
ps [servicio] ………………………………………………………………………………………………. 172
down [opciones] [servicio] ………………………………………………………………………….. 172
start [servicio] …………………………………………………………………………………………… 172
stop [-t timeout] [servicio] ………………………………………………………………………….. 172
Sintaxis plantilla …………………………………………………………………………………………… 173
version: versión …………………………………………………………………………………………. 173
build: directorio ………………………………………………………………………………………… 173
context: directorio o url ……………………………………………………………………………… 174
dockerfile: fichero ……………………………………………………………………………………… 174
args: argumentos ………………………………………………………………………………………. 174
command: comando ………………………………………………………………………………….. 174
entrypoint: comando …………………………………………………………………………………. 174
container_name: nombre …………………………………………………………………………… 175
depends_on: servicios ……………………………………………………………………………….. 175
environment: valores …………………………………………………………………………………. 175
env_file: fichero ………………………………………………………………………………………… 175
expose: puertos ………………………………………………………………………………………… 176
imagen: imagen ………………………………………………………………………………………… 176
labels: etiquetas ………………………………………………………………………………………… 176
logging: configuración ……………………………………………………………………………….. 176
network_mode: red …………………………………………………………………………………… 176
networks: redes ………………………………………………………………………………………… 177
ports: puertos …………………………………………………………………………………………… 177
volumes: volúmenes ………………………………………………………………………………….. 177
Ejemplo ………………………………………………………………………………………………………. 177
Acciones ……………………………………………………………………………………………………… 179
pause [servicio] …………………………………………………………………………………………. 179
unpause [servicio] ……………………………………………………………………………………… 180
build [opciones] [servicio] …………………………………………………………………………… 180
config [opciones] ……………………………………………………………………………………….. 181
create [opciones] [servicio] …………………………………………………………………………. 182
events [opciones] [services] ………………………………………………………………………… 183
exec [opciones] servicio comando [argumentos] …………………………………………… 183
kill [opciones] [servicio] ……………………………………………………………………………… 183
logs [opciones] [servicio] ……………………………………………………………………………. 184
port [opciones] servicio puerto ………………………………………………………………………….185
pull [–ignore-pull-failures] [servicio] …………………………………………………………….. 185
push [–ignore-push-failures] [servicio] …………………………………………………………. 185
Capítulo 13: Docker Cloud …………………………………………………………………………………… 187
Introducción ………………………………………………………………………………………………….. 187
Terminología ……………………………………………………………………………………………….. 187
Instalar nuestro propio nodo …………………………………………………………………………. 188
Desplegar un servicio ……………………………………………………………………………………. 191
Crear un stack ……………………………………………………………………………………………… 194
Sintaxis plantilla stack …………………………………………………………………………………… 196
Escalar un servicio ……………………………………………………………………………………….. 197
Triggers (disparadores) …………………………………………………………………………………. 198
Repositorios ………………………………………………………………………………………………… 199
Conectar a Github ………………………………………………………………………………………… 201
Autotest ……………………………………………………………………………………………………… 204
Cliente Docker Cloud…………………………………………………………………………………….. 206
Instalación …………………………………………………………………………………………………… 206
Acciones ……………………………………………………………………………………………………… 208
action [subacción] ……………………………………………………………………………………… 208
container [subacción] …………………………………………………………………………………. 209
event ……………………………………………………………………………………………………….. 210
node [subacción] ……………………………………………………………………………………….. 210
nodecluster [subacción] ……………………………………………………………………………… 212
repository [subacción] ………………………………………………………………………………… 213
run [opciones] …………………………………………………………………………………………… 213
service [subacción] …………………………………………………………………………………….. 215
stack [subacción] ……………………………………………………………………………………….. 217
trigger [subacción] …………………………………………………………………………………….. 218
up [opciones] …………………………………………………………………………………………….. 218
docker-cloud stack up. ……………………………………………………………………………….. 218
Capítulo 14: Docker Hub ……………………………………………………………………………………… 219
Introducción ………………………………………………………………………………………………….. 219
Organizaciones ……………………………………………………………………………………………. 219
Repositorios ………………………………………………………………………………………………… 221
Automatizar creación …………………………………………………………………………………… 221
Webhooks …………………………………………………………………………………………………… 224
Capítulo 15: Swarm ……………………………………………………………………………………………. 227
Introducción ………………………………………………………………………………………………….. 227
Terminología ……………………………………………………………………………………………….. 228
Arquitectura ……………………………………………………………………………………………….. 228
Crear un Swarm …………………………………………………………………………………………… 229
Añadir los nodos de trabajo ………………………………………………………………………….. 231
Desplegar un servicio …………………………………………………………………………………… 232
Escalar un servicio ……………………………………………………………………………………….. 233
Eliminar un servicio ……………………………………………………………………………………… 235
Publicar puertos ………………………………………………………………………………………….. 235
Eliminar nodo ……………………………………………………………………………………………… 237
docker service ……………………………………………………………………………………………… 237
ls [opciones] ……………………………………………………………………………………………… 237
inspect [opciones] servicio ………………………………………………………………………….. 238
ps [opciones] servicio …………………………………………………………………………………. 239
scale servicio=replicas ……………………………………………………………………………….. 239
create [opciones] imagen ………………………………………………………………………….. 239
update [opciones] servicio ………………………………………………………………………………. 241
docker node ………………………………………………………………………………………………… 243
ls [opciones] ……………………………………………………………………………………………… 243
ps [opciones] [nodo] ………………………………………………………………………………….. 244
inspect [opciones] [nodo] …………………………………………………………………………… 244
update [opciones] [nodo] …………………………………………………………….