Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LinuxChixAR - Taller de IBM Chicas Geek - Intro...

vkmc
April 08, 2017

LinuxChixAR - Taller de IBM Chicas Geek - Introducción a Docker

Taller de introducción a Docker
- Introducción teórica
- Hands on: comandos básicos
- Hands on: MySQL + Wordpress

vkmc

April 08, 2017
Tweet

More Decks by vkmc

Other Decks in Programming

Transcript

  1. 16 HANDS ON: COMANDOS BÁSICOS # Veamos todos los comandos

    $ docker # Descarguemos una imagen $ docker pull hello-world # Listemos nuestras imágenes $ docker images # Ejecutemos nuestro primer container $ docker run hello-world # Listemos los containers en ejecución $ docker ps -a
  2. 17 HANDS ON: COMANDOS BÁSICOS # Ahora probemos un programa

    más divertido $ docker run docker/whalesay cowsay "Hola chicas!" # Extendamos este programa $ mkdir mydockerbuild && cd mydockerbuild/ $ nano Dockerfile FROM docker/whalesay:latest RUN apt-get -y update && apt-get install -y fortunes CMD /usr/games/fortune -a | cowsay # Creamos nuestra imagen $ docker build -t docker-whale . # Comprobamos que nuestra imagen está lista para usar $ docker images # Ejecutemos un container con esa imagen $ docker run docker-whale
  3. 18 HANDS ON: COMANDOS BÁSICOS # Creamos una etiqueta para

    nuestra imagen $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker-whale latest 7d9495d03763 38 minutes ago 273.7 MB $ docker tag 7d9495d03763 \ lxar.chicas.geek/docker-whale:latest $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE lxar.chicas.geek/docker-whale latest 7d9495d03763 5 minutes ago 273.7 MB # Accedemos a nuestra cuenta $ docker login # Subimos nuestra imagen al repositorio $ docker push lxar.chicas.geek/docker-whale
  4. 20 HANDS ON: MYSQL # MySQL 5.7 $ docker pull

    mysql:5.7 # Primer intento $ docker run --name db -d mysql:5.7 $ docker ps $ docker logs db $ docker rm db # Segundo intento (sin DB) $ docker run --name db -e MYSQL_ROOT_PASSWORD=linuxchixar -d mysql:5.7 $ docker ps $ docker logs db $ docker exec -it db bash $ docker rm -f db
  5. 21 HANDS ON: MYSQL # MySQL 5.7 # Tercer intento

    (con DB) $ docker run --name db -e MYSQL_ROOT_PASSWORD=linuxchixar -e MYSQL_DATABASE=wordpressdb -d mysql:5.7 # Verificamos que la DB fue creada $ docker exec -it db bash > mysql -u root -p Enter password: <password> mysql> show databases; mysql> use wordpressdb; mysql> show tables;
  6. # Wordpress $ docker pull wordpress # Primer intento $

    docker run -e WORDPRESS_DB_PASSWORD=linuxchixar -d --name wordpress --link db:mysql wordpress $ docker inspect wordpress $ docker rm -f wordpress # Segundo intento (este es el que queremos :) $ docker run -e WORDPRESS_DB_PASSWORD=linuxchixar -d --name wordpress --link db:mysql -p 127.0.0.2:8080:80 wordpress 22 HANDS ON: WORDPRESS
  7. # Creamos un directorio $ mkdir my_wordpress $ cd my_wordpress

    # Creamos un YAML (Yet Another Markup Language) $ nano docker-compose.yml 25 DOCKER COMPOSE
  8. 26 DOCKER COMPOSE version: '2' services: db: image: mysql:5.7 volumes:

    - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: linuxchixar MYSQL_DATABASE: wordpressdb MYSQL_USER: linuxchixar MYSQL_PASSWORD: linuxchixar wordpress: depends_on: - db image: wordpress:latest ports: - "8080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: linuxchixar volumes: db_data:
  9. # Ejecutamos Docker Compose $ docker-compose up -d # Eliminamos

    nuestro entorno $ docker-compose down $ docker-compose down --volumes 27 DOCKER COMPOSE