SlideShare una empresa de Scribd logo
desde cero
@EguiMariano
About me...
Mariano Germán Egui
Trabajo como desarrollador web
Me gustan las buenas prácticas
Me preocupa la seguridad de la aplicación
Participó de Meetups y voy a conferencias relacionadas a
desarrollo e Infraestructura
Soy 100% amateur, programo en muchos lenguajes y me
mande hacer el elefante de PHP
Twitter: @EguiMariano
egui.mariano@gmail.com
@EguiMariano
@EguiMariano
¿Que es Docker?
Docker permite empaquetar una aplicación con todas sus
dependencias en una unidad estandarizada para el
desarrollo de software.
@EguiMariano
Fuente: https://www.docker.com/what-docker
¿Cómo lo hace?
Usando LXC (Linux Containers)….
Wikipedia.org:
“ Es una tecnología de virtualización en el nivel de sistema
operativo (SO) para Linux. LXC permite que un servidor físico
ejecute múltiples instancias de sistemas operativos aislados,
conocidos como Servidores Privados Virtuales (SPV o VPS en
inglés) o Entornos Virtuales (EV). LXC no provee de una
máquina virtual, más bien provee un entorno virtual que tiene
su propio espacio de procesos y redes. “
Fuente: https://es.wikipedia.org/wiki/LXC
@EguiMariano
Un container tiene las aplicaciones, librerías,
configuraciones, etc. que podamos necesitar y el
resto lo toma del host y recursos compartidos.
@EguiMariano
Simplificado por favor...
Entonces….
Docker es una herramienta más
que usa LXC
Docker utiliza la tecnología de LXC, porque
es más liviana, rapida y eficiente. Pero a
diferencia de otras herramientas Docker
incluye un kernel entre el Host y el Container
que permite su portabilidad entre sistemas
operativos y el completo aislamiento entre
otros contenedores...
Una comparación entre Virtualbox y Docker
La tecnología de virtualización es similar a las máquinas virtuales, pero más ligero, ya que no se
carga un sistema operativo completo para cada contenedor
@EguiMariano
¿Para qué sirve?
● Definir runtime environments distribuibles
● Colaboración entre DevOps y Devs
● Para entornos de desarrollo, CI y producción
● Versionar las aplicaciones y su entornos
● Escalable
¿Quienes soportan Docker?
@EguiMariano
¿Quienes usan Docker?
@EguiMariano
Docker en la practica
@EguiMariano
Instalar Docker
~➤ sudo apt-get install docker.io
@EguiMariano
https://docs.docker.com/engine/installation/
Docker posee su repositorio
Todas las imágenes se buscan en el host (local) y después en el repositorio Docker Hub,
el repositorio puede ser public o privado.
https://hub.docker.com/
Fuente: https://hub.docker.com/
@EguiMariano
Hello world
@EguiMariano
~➤ docker run ubuntu /bin/echo ‘Hello world’
Hello world
~➤ docker run -t -i ubuntu /bin/bash
root@af8bae53bdd3:/#
attach
Adjunta a un contenedor corriendo
build
Construye un contenedor de un archivo Docker
commit
Crea una nueva imagen de los cambios del
contenedor
cp
Copia archivos/carpetas de los contenedores del
sistema de archivos a la ruta de host
version
Muestra la información de versión de Docker
Comandos de Docker
@EguiMariano
diff
Inspecciona los cambios en el sistema de
archivos de un contenedor
events
Obtiene eventos en tiempo real desde el
servidor
export
Transmite el contenido de un contenedor
como un archivo tar
history
Muestra el historial de una imagen
Fuente: https://docs.docker.com/engine/reference/commandline
images
Lista las imágenes
import
Crea una nueva imagen del sistema de
archivos de los contenidos a partir de un
archivo tar
info
Muestra el sistema de información de la
pantalla
insert
Inserta un archivo en una imagen
tag
Etiqueta una imagen en un repositorio
inspect
Regresa información de bajo nivel en un
contenedor
kill
Mata a un contenedor en ejecución
(corriendo)
load
Carga una imagen desde un archivo tar
login
Registra la sesión para el servidor de
registro de Docker
logs
Obtiene los registros de un contenedor
Fuente: https://docs.docker.com/engine/reference/commandline
@EguiMariano
port
Busca el puerto público el cual está NAT-
eado y lo hace privado (PRIVATE_PORT)
ps
Lista los Contenedores
pull
Descarga una imagen o un repositorio del
servidor de registros Docker
push
Empuja una imagen o un repositorio del
servidor de registro Docker
restart
Reinicia un contenedor en ejecución
(corriendo)
top
Busca los procesos en ejecución de un
contenedor
rm
Elimina uno o más contenedores
rmi
Elimina una o más imágenes
run
Ejecuta un comando en un contenedor
save
Guarda una imagen en un archivo tar
search
Busca una imagen en el índice de Docker
start
Inicia un contenedor detenido
stop
Detiene un contenedor en ejecución
(corriendo)
Fuente: https://docs.docker.com/engine/reference/commandline
@EguiMariano
Dockerfile
@EguiMariano
~➤ echo '
FROM ubuntu:14.04.4
MAINTAINER Mariano Egui <egui.mariano@gmail.com>
RUN apt-get update
RUN apt-get -y install apache2
EXPOSE 80
CMD /usr/sbin/apache2ctl -D FOREGROUND
' > Dockerfile
Información general sobre comandos Dockerfile
@EguiMariano
ADD
Copia un archivo desde el host en el
contenedor
CMD
Configura comandos por defecto para ser
ejecutado, o se pasa al punto de entrada
ENTRYPOINT
ENTRYPOINT
Ajusta el punto de entrada por defecto de la
aplicación desde el contenedor
ENV
Inicializa variables de entorno (por ejemplo,
"clave=valor")
EXPOSE
Expone un puerto al exterior
FROM
Configura la imagen base para usar
RUN
Ejecuta un comando y cambia (commit) el
resultado de la la imagen final (contenedor)
USER
Establece el usuario para ejecutar los
contenedores de la imagen
VOLUMEN
Monta un directorio desde el host al
contenedor
WORKDIR
Establece el directorio para las directivas de
CMD que se ejecutarán
Fuente: https://docs.docker.com/engine/reference/builder
@EguiMariano
Imagen en caliente
@EguiMariano
~ ➤ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 44776f55294a 8 days ago 120.1 MB
~➤ docker run -it ubuntu
root@b0114a140333:/#
root@b0114a140333:/# apt-get update
root@b0114a140333:/# apt-get install apache2
root@b0114a140333:/#
~ ➤ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b0114a140333 ubuntu "/bin/bash" 35 minutes ago Up 35 minutes furious_knuth
~ ➤ docker commit --help
~ ➤ docker commit b0114a140333 local:apache2
Sha256:5ec5c7debed77ed44285cfee560ab11b45f2fe71faeabf32866b042ea10529b2
~ ➤ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local apache2 5ec5c7debed7 8 seconds ago 256 MB
ubuntu latest 44776f55294a 8 days ago 120.1 MB
Terminal 1
Terminal 2
Docker Compose
@EguiMariano
Componer es una
herramienta para la
definición y ejecución de
contenedores para
aplicaciones “multi-Docker”.
Fuente: https://github.com/schoren
¿Preguntas?
@EguiMariano

Más contenido relacionado

La actualidad más candente

Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
Javier Sánchez Ochando
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
Sergio Zambrano Delfa
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
BEEVA_es
 
Usando docker
Usando dockerUsando docker
Usando docker
Gustavo Muslera
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
Christian Rodriguez
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
Martin Kenneth Michalsky
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Nicolás Bello Camilletti
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
Gabriel Eisbruch
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
Alejandro Escanero Blanco
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
Restorando
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
Mario IC
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
Irene Alonso Candelario
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
Jorge Moratilla Porras
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
ITPAMI
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
Joselu Marina
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Luis Enrique Tejeda Rodriguez
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
Software Guru
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
Javier Cortejoso de Andrés
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
Erasmo Domínguez Jiménez
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
Gustavo Andres Brey
 

La actualidad más candente (20)

Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Usando docker
Usando dockerUsando docker
Usando docker
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 

Destacado

Docker introduction
Docker introductionDocker introduction
Docker introduction
Julien Maitrehenry
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
dotCloud
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
Docker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EEDocker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EE
Docker, Inc.
 
containerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerdcontainerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerd
Docker, Inc.
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
Docker, Inc.
 

Destacado (6)

Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Docker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EEDocker Online Meetup: Announcing Docker CE + EE
Docker Online Meetup: Announcing Docker CE + EE
 
containerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerdcontainerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerd
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 

Similar a Docker desde cero

Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Keopx
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
AntonyPrez3
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
Julio Palma Vázquez
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
BelnGonzlezGarca1
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
Mario IC
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
Felipe de Morais
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
Álvaro Alonso González
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
quaip
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
Bel Rey
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
Elio Rojano
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
VOIP2DAY
 
Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
Mario IC
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
Rafael Hernamperez Martin
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Mario IC
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
Micael Gallego
 
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTSInstalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Jose Antonio Carrasco Moreno
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
StivenLopez46
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
Adrian Garcia Casas
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Vicente Gerardo Guzman Lucio
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
Alejandro Hernández
 

Similar a Docker desde cero (20)

Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
 
Curso gratuito de Docker
Curso gratuito de DockerCurso gratuito de Docker
Curso gratuito de Docker
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTSInstalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 

Último

DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
arriagaanggie50
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 

Último (20)

DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 

Docker desde cero

  • 2. About me... Mariano Germán Egui Trabajo como desarrollador web Me gustan las buenas prácticas Me preocupa la seguridad de la aplicación Participó de Meetups y voy a conferencias relacionadas a desarrollo e Infraestructura Soy 100% amateur, programo en muchos lenguajes y me mande hacer el elefante de PHP Twitter: @EguiMariano egui.mariano@gmail.com @EguiMariano
  • 4. ¿Que es Docker? Docker permite empaquetar una aplicación con todas sus dependencias en una unidad estandarizada para el desarrollo de software. @EguiMariano Fuente: https://www.docker.com/what-docker
  • 5. ¿Cómo lo hace? Usando LXC (Linux Containers)…. Wikipedia.org: “ Es una tecnología de virtualización en el nivel de sistema operativo (SO) para Linux. LXC permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (SPV o VPS en inglés) o Entornos Virtuales (EV). LXC no provee de una máquina virtual, más bien provee un entorno virtual que tiene su propio espacio de procesos y redes. “ Fuente: https://es.wikipedia.org/wiki/LXC @EguiMariano
  • 6. Un container tiene las aplicaciones, librerías, configuraciones, etc. que podamos necesitar y el resto lo toma del host y recursos compartidos. @EguiMariano Simplificado por favor...
  • 7. Entonces…. Docker es una herramienta más que usa LXC Docker utiliza la tecnología de LXC, porque es más liviana, rapida y eficiente. Pero a diferencia de otras herramientas Docker incluye un kernel entre el Host y el Container que permite su portabilidad entre sistemas operativos y el completo aislamiento entre otros contenedores...
  • 8. Una comparación entre Virtualbox y Docker La tecnología de virtualización es similar a las máquinas virtuales, pero más ligero, ya que no se carga un sistema operativo completo para cada contenedor @EguiMariano
  • 9. ¿Para qué sirve? ● Definir runtime environments distribuibles ● Colaboración entre DevOps y Devs ● Para entornos de desarrollo, CI y producción ● Versionar las aplicaciones y su entornos ● Escalable
  • 12. Docker en la practica @EguiMariano
  • 13. Instalar Docker ~➤ sudo apt-get install docker.io @EguiMariano https://docs.docker.com/engine/installation/
  • 14. Docker posee su repositorio Todas las imágenes se buscan en el host (local) y después en el repositorio Docker Hub, el repositorio puede ser public o privado. https://hub.docker.com/ Fuente: https://hub.docker.com/ @EguiMariano
  • 15. Hello world @EguiMariano ~➤ docker run ubuntu /bin/echo ‘Hello world’ Hello world ~➤ docker run -t -i ubuntu /bin/bash root@af8bae53bdd3:/#
  • 16. attach Adjunta a un contenedor corriendo build Construye un contenedor de un archivo Docker commit Crea una nueva imagen de los cambios del contenedor cp Copia archivos/carpetas de los contenedores del sistema de archivos a la ruta de host version Muestra la información de versión de Docker Comandos de Docker @EguiMariano diff Inspecciona los cambios en el sistema de archivos de un contenedor events Obtiene eventos en tiempo real desde el servidor export Transmite el contenido de un contenedor como un archivo tar history Muestra el historial de una imagen Fuente: https://docs.docker.com/engine/reference/commandline
  • 17. images Lista las imágenes import Crea una nueva imagen del sistema de archivos de los contenidos a partir de un archivo tar info Muestra el sistema de información de la pantalla insert Inserta un archivo en una imagen tag Etiqueta una imagen en un repositorio inspect Regresa información de bajo nivel en un contenedor kill Mata a un contenedor en ejecución (corriendo) load Carga una imagen desde un archivo tar login Registra la sesión para el servidor de registro de Docker logs Obtiene los registros de un contenedor Fuente: https://docs.docker.com/engine/reference/commandline @EguiMariano
  • 18. port Busca el puerto público el cual está NAT- eado y lo hace privado (PRIVATE_PORT) ps Lista los Contenedores pull Descarga una imagen o un repositorio del servidor de registros Docker push Empuja una imagen o un repositorio del servidor de registro Docker restart Reinicia un contenedor en ejecución (corriendo) top Busca los procesos en ejecución de un contenedor rm Elimina uno o más contenedores rmi Elimina una o más imágenes run Ejecuta un comando en un contenedor save Guarda una imagen en un archivo tar search Busca una imagen en el índice de Docker start Inicia un contenedor detenido stop Detiene un contenedor en ejecución (corriendo) Fuente: https://docs.docker.com/engine/reference/commandline @EguiMariano
  • 19. Dockerfile @EguiMariano ~➤ echo ' FROM ubuntu:14.04.4 MAINTAINER Mariano Egui <egui.mariano@gmail.com> RUN apt-get update RUN apt-get -y install apache2 EXPOSE 80 CMD /usr/sbin/apache2ctl -D FOREGROUND ' > Dockerfile
  • 20. Información general sobre comandos Dockerfile @EguiMariano ADD Copia un archivo desde el host en el contenedor CMD Configura comandos por defecto para ser ejecutado, o se pasa al punto de entrada ENTRYPOINT ENTRYPOINT Ajusta el punto de entrada por defecto de la aplicación desde el contenedor ENV Inicializa variables de entorno (por ejemplo, "clave=valor") EXPOSE Expone un puerto al exterior FROM Configura la imagen base para usar RUN Ejecuta un comando y cambia (commit) el resultado de la la imagen final (contenedor) USER Establece el usuario para ejecutar los contenedores de la imagen VOLUMEN Monta un directorio desde el host al contenedor WORKDIR Establece el directorio para las directivas de CMD que se ejecutarán Fuente: https://docs.docker.com/engine/reference/builder
  • 22. Imagen en caliente @EguiMariano ~ ➤ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 44776f55294a 8 days ago 120.1 MB ~➤ docker run -it ubuntu root@b0114a140333:/# root@b0114a140333:/# apt-get update root@b0114a140333:/# apt-get install apache2 root@b0114a140333:/# ~ ➤ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b0114a140333 ubuntu "/bin/bash" 35 minutes ago Up 35 minutes furious_knuth ~ ➤ docker commit --help ~ ➤ docker commit b0114a140333 local:apache2 Sha256:5ec5c7debed77ed44285cfee560ab11b45f2fe71faeabf32866b042ea10529b2 ~ ➤ docker images REPOSITORY TAG IMAGE ID CREATED SIZE local apache2 5ec5c7debed7 8 seconds ago 256 MB ubuntu latest 44776f55294a 8 days ago 120.1 MB Terminal 1 Terminal 2
  • 23. Docker Compose @EguiMariano Componer es una herramienta para la definición y ejecución de contenedores para aplicaciones “multi-Docker”. Fuente: https://github.com/schoren