Sunteți pe pagina 1din 25

Hola!

Edith Puclla Pareja

Docker Lima

Microsoft Influencer
Manos a la obra con docker
Agenda

Introducción a docker
 Flujo de trabajo de docker
 Imagenes
 Tags
 Contenedores
 Puertos
 Network
 Volumes
 Links
 Commits
Docker : Introducción
“Construir, enviar y ejecutar cualquier aplicación, en cualquier lugar”
Los contenedores de Docker nos permiten encapsular la aplicación y
sus dependencias.
Trabajar con Docker hace más productivo el desarrollo y despliegue
de aplicaciones.
En mi local funciona ...?
Virtual machine =! containers
Docker architecture
Qué debemos conocer?
 Image
 Container
 Tag
 Dockerfile
 Volumen
 Registry
 Link
 Docker compose
 Docker swarm
Instalación ( linux)

$ curl -sSL https://get.docker.com | sh


$ sudo usermod -aG docker $USER
$ docker info
$ docker ps
Docker flujo de trabajo
Buscando imágenes
$ docker search alpine
$ docker search alpine:latest
$ docker search alpine:3.6
$ docker search alpine --limit 5
Pull images

$ docker pull alpine


$ docker pull alpine:3.6
$ docker pull nginx
Listar, taguear y borrar imagenes

$ docker tag alpine:3.6 myalpine:1.0


$ docker rmi alpine:1.0
Lanzando un contenedor
 $ docker run -i -t ubuntu /bin/bash
$ cat /etc/*release

Recomendado:
 Especificando la version:
$ docker run -i -it ubuntu:17.10 /bin/bash
$ cat /etc/*release
Puertos

$ docker run --name mynginx -d -p 8080:80 nginx


Listando contenedores, exec
$ docker ps
$ docker ps -a
Ingresando a un contenedor
$ docker <containerid> exec /bin/bash
Stop-Start contenedores
$ docker stop <container-id>
$ docker start <container-id>
$ docker kill <container-id>
Docker networking
$ docker run -d --name=compartido --rm alpine
sleep 3600
$ docker run -d --name=misma-ip --rm --
net=container:compartido alpine sleep 3600
Revisando las ips
docker exec -it compartido ifconfig
docker exec -ti misma-ip ifconfig
Eliminando contenedores
$ docker container start myalpine
$ docker container rm -f myalpine
$ docker ps -a
Docker volumes
$ mkdir -p compartido/html
$ cd compartido
$ docker run --name mynginx -v
$(pwd)/html:/usr/share/nginx/html -p 8080:80 -d
nginx
Tips

$ docker system prune


$ docker logs -f myapine
$ docker rmi $(docker images -a -q)
$ docker stop $(docker ps -a -q)
$ docker rm $(docker ps -a -q)
Link
$ docker run --name cont-mysql -e
MYSQL_ROOT_PASSWORD=myclave -d
mysql:5.6
$ docker run --name cont-wordpress --link cont-
mysql -p 8080:80 -d wordpress:latest
Image by commit
$ docker run -it --name=myalpine alpine sh
$ htop
$ apk add htop
En otra terminal
$ docker container commit 38d5bae36f61
mynewalpine:1.0
$ docker run <container-id> -it sh
$ htop
Docker hub
https://hub.docker.com/
Docker Registry
$ docker run -v $PWD/data:/var/lib/registry -d -
p 5000:5000 --name registry registry:2
$ curl http://localhost:5000/v2/_catalog

Push a docker registry


$ docker tag alpine localhost:5000/alpine:2.1
$ docker push localhost:5000/alpine:2.1
$ docker pull localhost:5000/alpine:2.1
Dockerfile
$ nano dockerfile
FROM nginx:alpine
MAINTAINER Edith Puclla <ediypuclla@gmail.com>
RUN apk update && apk add htop
COPY html/index.html /usr/share/nginx/html/index.html

$ docker build -t editaxz/nginx:alpine .


$ docker run -v $PWD/html:/apps/ -p 8080:80
editaxz/nginx:alpine

S-ar putea să vă placă și