PDF de programación - Meet Docker - Guía para iniciarte

Imágen de pdf Meet Docker - Guía para iniciarte

Meet Docker - Guía para iniciartegráfica de visualizaciones

Publicado el 07 de Noviembre del 2018
367 visualizaciones desde el 07 de Noviembre del 2018
4,5 MB
69 paginas
Creado hace 2a (28/03/2016)
Meet Docker

Tabla de contenido

Introducción
Acerca del Autor
Fundamentos de Docker

Arquitectura de Docker

Instalando Docker
Primeros Pasos con Docker
Creando Imágenes

DockerFiles
Mejores Prácticas DockerFiles

Comando Docker Run
Otros Comandos
Docker Compose

Archivo docker-compose en detalle

Cierre

0
1
2
2.1
3
4
5
5.1
5.2
6
7
8
8.1
9

2

Meet Docker

Acerca del Libro

Muchos han escuchado hablar de Docker pero no muchos sabe exactamente de que se
trata, por que es tan popular y en que nos puede beneficiar según nuestro ambiente.

Esta guía fue creada con el fin de introducir el tema de una manera sencilla y fácil de
entender, sacada de la serie de entradas en el Blog de Jsitech. A lo largo de esta guía
veremos

Qué es Docker
Entiendiendo la Arquitectura
Como se compara Docker con las Máquinas Virtuales
Instalando Docker
Usando Docker

Cuando termine de leer esta guía será capaz de entender lo que es docker y como utilizarlo.

Introducción

3

Meet Docker

Acerca del Autor

Jason Soto, Profesional InfoSec/Linux, Penetration Tester, Ethical Hacking, Gestión de la
Seguridad, SysAdmin, Creador del blog Jsitech, Security Feed y IT Talks.

Experiencia

Mas de 10 años de Experiencia en el Area de TI, en la Administración de sistemas Linux y
algunos años en Seguridad de Información.En Ocasiones da consultorías en el area de
Linux/Windows hardening, Seguridad y realiza test de Penetración. Actualmente es el
Encargado de Seguridad de información y Linux SysAdmin en una organización.

Experiencia Informática

Sistemas Operativos: UNIX, GNU/Linux, Windows, Windows Server, Oracle Solaris,
FreeBSD

Desarrollo: Bash Scripting, Python

IT Security/Ethical Hacking: Penetration Testing, Metasploit Framework, Ethical Hacking,
Linux/Windows Hardening, Wireless Security, Network Security

DevOps: Chef, Jenkins, Docker, Puppet

Cloud: OpenStack, CloudU Certification

Proyectos

Constantemente hace publicaciones sobre Seguridad, Ethical Hacking, Linux entre otros, en
su blog JsiTech . La Idea es compartir el conocimiento con todos los profesionales del área
de la Tecnología de la Información especialmente en Seguridad informática. Cuenta además
con otros proyectos:

IT-Talks

Aquí creamos Hangouts periódicamente sobre temas del área de TI, que incluyen,
Seguridad, Desarrollo, Hacking, Administración de Sistemas, entre otros.

Acerca del Autor

4

Meet Docker

Security Feed

Aquí Recopilamos los titulares de los Blogs más conocidos de Seguridad y Ethical Hacking.

GitHub

En su cuenta de GitHub pueden ver los Scripts y otros proyectos en los que anda
trabajando. Aquí encontrarán los repo de JShielder, Otros Scripts y mas contribuciones a
diversas herramientas de Seguridad.

Pueden seguir sus proyectos en Twitter

@JsiTech

@InfoSecFeed

@InfoSecFeed_EN

@TecnoTalks

Acerca del Autor

5

Meet Docker

Fundamentos de Docker

Que es Docker?

Docker es un proyecto Open Source basado en contenedores de Linux, es básicamente un
motor de contenedores que usa características del Kernel de Linux como espacios de
nombres y controles de grupos para crear contenedores encima del Sistema operativo y
automatizar el despliegue de aplicaciones en estos contenedores. Nos permite además un
flujo de trabajo bastante eficiente al momento de mover nuestras aplicaciones desde un
ambiente de desarrollo, a pruebas y finalmente a producción.

Hablamos de Espacios de nombres y Control de Grupos,
pero que son estos?

Espacios de Nombres (namespaces)

Un espacio de nombre envuelve un recurso de Sistema global en una abstracción que le
hace parecer al proceso dentro del espacio de nombre, que tiene su propia instancia aislada
del recurso. Los cambios al recurso global son visibles para los proceso dentro del espacio
de nombre pero invisible para otros procesos. Una de las implementaciones mas utilizada
son los contenedores.

Linux provee los espacios de nombre:

Fundamentos de Docker

6

Meet Docker

IPC (Interprocess Communication Mechanism): Mecanismo de comunicación
Interproceso, aisle ciertos recursos IPC, específicamente System V IPC y cola de mensajes
POSIX.

NETWORK: Provee aislamiento de los recursos del Sistema asociados con las
comunicaciones de red, Dispositivos de red, Stack de protocolos IPv4 e IPv6, tablas de
enrutamiento, firewalls, directorio /proc/net, sockets de comunicación entre otros.

PID: Aisla el espacio de nombre del ID de proceso, que significa que procesos en otros
espacios de nombres PID, pueden tener el mismo PID. Esto le permite a los contenedores
proveer funcionalidades de suspension y recuperación de procesos en el contenedor y la
migración del contenedor a otro host manteniendo el mismo PID.

User: Aisla atributos e identificadores relacionados con la seguridad, particularmente los
ID’s de usuarios y grupos, el direcorio raíz, permisos, etc. El usuario y el grupo de un
proceso puede ser distinto dentro y fuera del espacio de nombre de usuario, Quiere decir
que un proceso puede tener un ID no privilegiado fuera del espacio de nombre y un ID de 0
dentro del espacio de nombre.

UTS: Provee aislamiento de dos identificadores de Sistema. El hostname y el nombre del
dominio NIS.

Control de Grupos

Los recursos usados por un contenedor son controladores por el control de grupos. Se
puede configurar cuanto CPU y memoria usa un contenedor hacienda uso de ellos.

Docker VS Máquinas Virtuales

La diferencia mas notable es que las Máquinas Virtuales son sistemas operativos completos
por lo que tendríamos que contar con muchos recursos. Docker en cambio aprovecha los
recursos del sistema operativo sobre el cual se ejecuta, como el Kernel y librerias. Es por
esta razón que terminanos con imágenes que ocupan muy poco espacio.

Fundamentos de Docker

7

Meet Docker

Fundamentos de Docker

8

Meet Docker

Arquitectura de Docker

Docker usa una arquitectura cliente-servidor. El cliente de Docker habla con el Daemon
de Docker que hace el trabajo de crear, correr y distribuir los contenedores. Tanto el cliente
como el Daemon pueden ejecutarse en el mismo Sistema, o puede conectar un cliente
remoto a un daemon de docker.

El cliente de Docker es la principal interfaz de usuario para docker, acepta los comandos
del usuario y se comunica con el daemon de docker.

Para entender como funciona docker internamente debemos conocer tres componentes.

Imágenes de Docker (Docker Images)

Las imágenes de Docker son plantillas de solo lectura, es decir, una imagen puede contener
el Sistema operativo de CentOS o Ubuntu con apache instalados, pero esto solo nos
permitirá crear los contenedores basados en esta configuración. SI hacemos cambios en el
contenedor ya lanzado, al detenerlo esto no se verá reflejado en la imagen. Mas adelante
entenderemos esta parte.

Registros de Docker (Docker Registries)

Los registros de Docker guardan las imágenes, estos son repos públicos o privados donde
podemos subir o descargar imágenes. El registro público lo provee el Hub de Docker que
sirve una colección de imágenes para nuestro uso. Los registros de dockers básicamente
son el componente de Distribución de Docker.

Contenedores de Docker (Docker Containers)

El contenedor de docker aloja todo lo necesario para ejecutar una aplicación. Cada
contenedor es creado de una imagen de docker. Cada contenedor es una plataforma
aislada.

Veamos gráficamente la arquitectura

Arquitectura de Docker

9

Meet Docker

Arquitectura de Docker

10

Meet Docker

Instalando Docker

En esta guía veremos la instalación de Docker en CentOS, Ubuntu y Debian.

CentOS 6

Instalamos el Repo EPEL

$ rpm –Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

CentOS 7

$ yum update
$ vi /etc/yum.repos.d/docker.repo

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

Procedemos con la instalación de Docker

CentOS 6

$ yum install docker-io

CentOS 7

$ yum install docker-engine

Ubuntu 14.04/15.04

$ apt-get update

$ apt-get install apt-transport-https ca-certificates

Instalando Docker

11

Meet Docker

Agregamos la nueva llave gpg

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Agregamos los repos de Docker

$ nano /etc/apt/sources.list.d/docker.list

** Ubuntu 14.04

```deb https://apt.dockerproject.org/repo ubuntu-trusty main

** Ubuntu 15.04

```deb https://apt.dockerproject.org/repo ubuntu-wily main

**Procedemos con la Instalación

$ apt-get purge lxc-docker
$ apt-get install docker-engine

Debian 7/8

$ apt-get purge lxc-docker*
$ apt-get purge docker.io*

Agregamos la nueva llave gpg

$ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Agregamos los repos de Docker

$ nano /etc/apt/sources.list.d/docker.list

Debian 7

deb https://apt.dockerproject.org/repo debian-wheezy main

Instalando Docker

12

Meet Docker

Debian 8

deb https://apt.dockerproject.org/repo debian-jessie main

$ apt-get update
$ apt-get install docker-engine

Una vez instalamos vamos asegurarnos que el servicio de Docker suba cada vez que
booteemos nuestros servers.

Centos 6

$ chkconfig docker on

Centos 7

$ systemctl enable docker.service

Ubuntu 14.04/15.04

$ chkconfig docker on

Iniciamos los servicios para asegurarnos que todo anda bien.

CentOS 6

$ service docker start

Centos 7

$ systemctl start docker.service

Ubuntu 14.04/15.04

$ service docker start

Instalando Docker

13

Meet Docker

Debian 7/8

$ service docker start

Ya que tenemos el ambiente listo. Vamos a ejecutar el commando Docker a ver que nos
trae.

$ docker

Instalando Docker

14

Meet Docker

Nos trae información sobre las opciones que le podemos pasar a docker. Recuerdan que el
post anterior hablamos de los registros de Docker o Docker Registries que es un repo con
diversas imágenes para descargar, para probar que todo anda bien, vamos a realizar
  • Links de descarga
http://lwp-l.com/pdf14150  

Comentarios de: Meet Docker - Guía para iniciarte (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad