SlideShare una empresa de Scribd logo
2
Lo más leído
5
Lo más leído
7
Lo más leído
BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 1
++++++++++++++++++++++++ CONTENEDORES (dockers) ++++++++++++++++++++++++++
-Que son los dockers?
-Diferencias entre dockers vs Máquinas Virtuales
-Arquitectura de los dockers
-Tendencias y principales aplicaciones
-Que se necesita para utilizar estas tecnologías?
-docker101
- instalación
- comandos básicos
- repositorios docker
- dockers vs images
-- docker-hello-world
-docker102 - implementación de BD en dockers
-- MySQL Server o PostgreSQL en docker
-- Como acceder a la BD del docker desde una interfaz como MySQLworkbench
o pgAdmin?
--- Referencias --------------------------------------------------------------
Docker Commands
https://dzone.com/articles/docker-command-cheatsheet
Play with Docker Classroom
https://training.play-with-docker.com/
https://training.play-with-docker.com/ops-s1-hello/
Hello world y basic Linux Alpine
Tutorial - Docker Quickstart
https://linuxacademy.com/devops/training/course/name/docker-quick-start
BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DOCKER 101 - Docker Commands -
https://dzone.com/articles/docker-command-cheatsheet
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- List images:
>docker images
--List running docker processes:
>docker ps
--List all processes that were ever run:
>docker ps -a
--List only the container IDs:
>docker ps -a -q
-- Running processes:
docker run <image>
docker run -d <image> --> run in disconnected / daemon mode
docker run --name="Some Name" --> name the running instance
docker start <name> --> will restart a closed / exited instance of the image
docker exec -it <name> <command> -->run a command within a running container
-- without changing the state of the running container
docker stop <name> --> stop a running container by using the name
-- Cleaning up Docker:
docker rm containerid --> removes an instance of the container that was run
docker rm `docker ps -a -q` --> remove all stopped containers
docker rmi image-name --> removes the docker image and its dependencies
--Redirect port:
docker run -P --> will redirect the container's port to a random port
-- on the host machine's user port (port no 32,000+)
docker run -p 8080:80 --> will redirect the container's port 80 to a port 8080
-- on the host machine's user port
docker port <container-name> --> will list the port mapping information
BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 3
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DOCKER 101 - Tips para usar docker en Windows para configurar servers de BD
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
---------------------------------------------------------
Para windows 10 home
no funciona el más nuevo Docker Windows installer (533 MB) requiere Win10 PRO,
en su lugar se puede usar el dockerToolbox (216MB)
Se descarga el DockerTools
Se instala con doble click
Se corre desde el acceso directo, se abre una terminal y se empieza a
configurar tarda como 3 minutos en configurar, al final queda un PROMPT y
expone una IP que le asigno a una VM, pe.e
192.168.99.100
*** Se puede interactuar con docker en Windows, usando al menos 2 opciones:
1) Usando el Docker QuickstartTerminal,
2) Usando la interfaz gráfica GUI de Kitematic
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comandos básicos para docker
---------------------------------------------
$ docker --version
-- muestra la version del docker
$ docker-machine ip -- saber la IP del docker
$ docker-machine ls -- da un listado de la maquinas corriendo
$ docker-machine url -- da el URL de acceso, p.e tcp://192.168.99.100:2376
-- da un listado de las imagenes que tiene descargadas localmente
$ docker image ls --> es equivalente a
$ docker images
-- descarga una mini VM con una app que imprime el hola mundo
$ docker run hello-world
-- descarga una MV de ubuntu y abre su bash... con exit terminal
$ docker run -it ubuntu bash
-- descarga la ultima imagen del centos
$ docker pull centos:latest
-- corre la MV del centos y se abre en modo shell interactivo
$ docker run -it centos:latest
-- da un listado de los contenedores que estan corriendo localmente
$ docker container ls
$ docker ps -- es igual
-- listado de los contenedores que han corrido al menos una vez
$ docker container ls -a
BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 4
-- ******* BORRADO de IMAGENES y CONTAINERs ***********************
-- CUIDADO: al borrar una imagen *** una imagen es diferente del
-- container.. Si tuviera asociado un container se tendrá que forzar
-- o borrar previamente el container
$ docker rmi <imageName:imagenTag> -f -- -forzar
-- *** borrar imagenes UNTAGGEDs <none>:<none>
$ docker rmi $(docker images -q -f dangling=true)
-- borrar un contenedor
-- *** Aguas, pudiera estar corriendo como un servicio.
$ docker rm <dockerName:Tag> -- ó tambien:
$ docker rm <container_ID>
-- terminar la sesion con el docker
$ exit
BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 5
- - ******* Utilización de DOCKERS para BASES DE DATOS ******************
-- Instalar el docker para MYSQL
-- ++++ Docker de MySQL https://hub.docker.com/_/mysql/
- - *********************************************************************
$ docker pull mysql
-- descarga el ultimo docker para MySQL
$ docker pull mysql:5.7 -- descarga la version 5.7, la 8.0 tiene detalles
-- de compatibilidad en la autentificacion
-- habria que usar "mysql_native_password"
-- En la documentacion indica que así se lanza el server
$ docker run --name nombreDelServer
-e MYSQL_ROOT_PASSWORD=my-secret-pw
-d mysql:tag
-- de esta forma se podra usar el mySQL server como daemon,
-- pero solo dentro del docker...
-- **Se puede PUBLICAR(exponer) el puerto** para acceder desde la PC host
-- se corre el server de MySQL, se le asigna una Tag y el pass del root
$ docker run -p 3306:3306
--name mysql57 <-- se escribe todo de corrido
-e MYSQL_ROOT_HOST=%
-e MYSQL_ROOT_PASSWORD=password
-d mysql:5.7
$ docker run -p 3307:3307 --name server55 -e MYSQL_ROOT_HOST=%
-e MYSQL_ROOT_PASSWORD=password -d mysql:5.5
-- --name asigna un nombre al contenedor.
-- -e permite asignar valores a run time variables,
-- como el pass del root con: 'MYSQL_ROOT_PASSWORD' y
-- el HOST con 'MYSQL_ROOT_HOST'
-- -d configura el contenedor como un daemon (corre en segundo plano)
-- se checa si queda corriendo el mysql
$ docker container ls
-- Si quisieramos eliminar una instancia del docker se usa "rm".
-- se puede usar para reconfigurar un docker
$docker rm mysql57 <-- <servername> el nombre asignado con --name
--checar los logs del mysql server <servername>
$ docker logs mysql57
--checar datos finos de la configuracion del docker, como la IP interna
$ docker inspect mysql57
-- regresa un jSON con todos los datos
-- matar el proceso, reiniciar, iniciar, parar, el container del server
$docker kill mysql57
$docker restart mysql57
$docker start mysql57
$docker stop mysql57
BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 6
-- +++ conexiones al MySQL server ------------------------------------------
-- conectarse dentro del docker como cliente al puerto default 3306
-- ** CUIDAR el nombre de la imagen que corresponda con su etiqueta,
-- porque sino tratará de instanciar un "mysql:latest"
-- --link <mysql57:mysql> --rm <mysql:5.7>
-- servername:imagen imagen:tag
$ docker run -it <-- para establecer session interactiva en la misma terminal
--link mysql57:mysql <--enlazar al contenedor del server
--rm mysql:5.7 <--borra el contenedor al terminar sesion
sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR"
-P"$MYSQL_PORT_3306_TCP_PORT" -uroot
-p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
-- version más corta sin incluir referencia al pass
$ docker run -it --link mysql57:mysql --rm mysql:5.7
sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR"
-P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p'
-- version aún más corta, usando directamente los valores e IP de la VM
$ docker run -it --link mysql57:mysql --rm mysql:5.7
sh -c 'exec mysql -h192.168.99.100 -uroot -p'
-- Otra forma de lanzar el cliente de mysql (mysql.exe)
-- es sin instanciar un nuevo Docker, utilizando el mismo container
-- del server que ya está corriendo … con docker EXEC
-- $docker exec -it <instancia> <comando>
$ docker exec -it mysql57 mysql -uroot -ppassword -P3306
-- se puede omitir el -h y asumirá localhost, se puede omitir también el -P
-- ++++++++ Para conexiones desde la maquina Host +++++++++++++++++++++++++
-- 1) obtener IP de VM: $docker-machine ip -> (192.168.99.100)
-- 2) Haber instanciado el server con el puerto expuesto
-- 3) conectar con consola cliente o workbench
>mysql -h192.168.99.100 -P3306 -uroot -p
BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 7
- - ******** INSTALAR el docker para PostgreSQL server *************
-- https://hub.docker.com/_/postgres/
- - *****************************************************************
-- descargar docker de PostgreSQL server
$docker pull postgres:9.5
-- con el tag “9.5” se indica la version 9.5, si no será 'latest'
-- correr la imagen del Postgre como server (daemon),
$ docker run -p 5432:5432 --name pgserver95
-e POSTGRES_PASSWORD=password -d postgres:9.5
-- -p 5432:5432 se publica el puerto interno del docker como publico
-- --name , -e -d similares a la ejecucion del MySQL
-- +++ conexiones al servidor del posgreSQL +++++++++++++++++++++++++++++++++
-- una vez expuesto el puerto, se podria conectar desde el pgAdmin u otros
-- conectarse via terminal con el cliente "psql.exe"
$ docker run -it --link pgserver95:postgres --rm postgres:9.5 psql -h
postgres -U postgres
-- cuidar el nombre de la imagen que corresponda con su respectiva etiqueta,
-- porque sino tratará de instanciar un "postgres:latest"
-- --link <pgserver95:postgres> --rm <postgres:9.5>
-- servername:imagen imagen:tag
/* comandos basicos para terminal "psql.exe":
? ayuda sobre comandos pgsql
l lista las databases
dt lista las tablas
c conecta a DB
q salir
*/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Más contenido relacionado

PPTX
K8s in 3h - Kubernetes Fundamentals Training
PDF
CloudStack vs OpenStack
PPTX
Dockers and containers basics
DOCX
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
PPTX
Docker Deep Dive Understanding Docker Engine Docker for DevOps
PDF
Virtualisation
PPTX
Kubernetes Helm: Why It Matters
PPTX
Công nghệ ảo hóa
K8s in 3h - Kubernetes Fundamentals Training
CloudStack vs OpenStack
Dockers and containers basics
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
Docker Deep Dive Understanding Docker Engine Docker for DevOps
Virtualisation
Kubernetes Helm: Why It Matters
Công nghệ ảo hóa

La actualidad más candente (20)

PPTX
Herencia en C++
PDF
Kubernetes Networking
PPTX
Powershell Demo Presentation
PDF
Evolution of containers to kubernetes
PPTX
Automation with Packer and TerraForm
PDF
Servlet Hola Mundo con Eclipse y Tomcat
PPTX
Docker Basics
PPTX
ODP
Kubernetes Architecture
PDF
Introduction of Kubernetes - Trang Nguyen
PPTX
Introduction to CNI (Container Network Interface)
PDF
An Introduction to CMake
 
PPTX
Docker.pptx
PDF
Containers: The What, Why, and How
PDF
Observability with HAProxy
PDF
The Container Storage Interface (CSI)
PDF
Instalacion de Pentaho 5 con PostgreSQL 9.3
ODP
An Introduction to Windows PowerShell
Herencia en C++
Kubernetes Networking
Powershell Demo Presentation
Evolution of containers to kubernetes
Automation with Packer and TerraForm
Servlet Hola Mundo con Eclipse y Tomcat
Docker Basics
Kubernetes Architecture
Introduction of Kubernetes - Trang Nguyen
Introduction to CNI (Container Network Interface)
An Introduction to CMake
 
Docker.pptx
Containers: The What, Why, and How
Observability with HAProxy
The Container Storage Interface (CSI)
Instalacion de Pentaho 5 con PostgreSQL 9.3
An Introduction to Windows PowerShell
Publicidad

Similar a Docker 101 - dockers y Bases de Datos DB (20)

PPTX
Docker como recurso de aula para docentes
PDF
FROM lost to the docker
PPTX
FROM lost to the Docker 2020
PDF
Taller girona
PDF
Jenkins Peru Meetup Docker Ecosystem
PPTX
PDF
Docker y PostgreSQL
PPTX
Primeros pasos con Docker
PDF
Dockers y wp
PDF
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
ODT
Habilidades de linux
PDF
Semana 7 Despliegue a producción ORACLE OCI
PDF
Thunder cache 3.1.2 en centos 6.3
PDF
Introduction to docker. Stratio
DOCX
Instalacion de Postrgre sql en ubuntu
PDF
Instalar Docker Desktop y Kubernetes en Windows 10
PDF
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
PDF
Manejo de-redes-linux
PDF
Bulma 441
PPTX
Primeros pasos tema_11_bis
Docker como recurso de aula para docentes
FROM lost to the docker
FROM lost to the Docker 2020
Taller girona
Jenkins Peru Meetup Docker Ecosystem
Docker y PostgreSQL
Primeros pasos con Docker
Dockers y wp
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
Habilidades de linux
Semana 7 Despliegue a producción ORACLE OCI
Thunder cache 3.1.2 en centos 6.3
Introduction to docker. Stratio
Instalacion de Postrgre sql en ubuntu
Instalar Docker Desktop y Kubernetes en Windows 10
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Manejo de-redes-linux
Bulma 441
Primeros pasos tema_11_bis
Publicidad

Más de Roman Herrera (6)

PDF
Python - Lenguaje de programación para Ciencia de Datos
PDF
Data Science learning roadmaps 2021
PDF
Herramientas y recursos tecnológicos para el Data Science
PDF
Calidad de datos. Preparación y limpieza de los datos
PDF
IoT - integración de particle photon con Alexa y Google Assistant
PDF
Big data, NoSQL y tendencias en Bases de Datos 2018.
Python - Lenguaje de programación para Ciencia de Datos
Data Science learning roadmaps 2021
Herramientas y recursos tecnológicos para el Data Science
Calidad de datos. Preparación y limpieza de los datos
IoT - integración de particle photon con Alexa y Google Assistant
Big data, NoSQL y tendencias en Bases de Datos 2018.

Último (20)

PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
clase auditoria informatica 2025.........
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Presentación de Redes de Datos modelo osi
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
Maste clas de estructura metálica y arquitectura
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
taller de informática - LEY DE OHM
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPT
Que son las redes de computadores y sus partes
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Sesion 1 de microsoft power point - Clase 1
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
clase auditoria informatica 2025.........
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Diapositiva proyecto de vida, materia catedra
Presentación de Redes de Datos modelo osi
Estrategia de apoyo tecnología miguel angel solis
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Maste clas de estructura metálica y arquitectura
SAP Transportation Management para LSP, TM140 Col18
Presentación PASANTIAS AuditorioOO..pptx
historia_web de la creacion de un navegador_presentacion.pptx
taller de informática - LEY DE OHM
Influencia-del-uso-de-redes-sociales.pdf
Calidad desde el Docente y la mejora continua .pdf
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Que son las redes de computadores y sus partes

Docker 101 - dockers y Bases de Datos DB

  • 1. BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 1 ++++++++++++++++++++++++ CONTENEDORES (dockers) ++++++++++++++++++++++++++ -Que son los dockers? -Diferencias entre dockers vs Máquinas Virtuales -Arquitectura de los dockers -Tendencias y principales aplicaciones -Que se necesita para utilizar estas tecnologías? -docker101 - instalación - comandos básicos - repositorios docker - dockers vs images -- docker-hello-world -docker102 - implementación de BD en dockers -- MySQL Server o PostgreSQL en docker -- Como acceder a la BD del docker desde una interfaz como MySQLworkbench o pgAdmin? --- Referencias -------------------------------------------------------------- Docker Commands https://dzone.com/articles/docker-command-cheatsheet Play with Docker Classroom https://training.play-with-docker.com/ https://training.play-with-docker.com/ops-s1-hello/ Hello world y basic Linux Alpine Tutorial - Docker Quickstart https://linuxacademy.com/devops/training/course/name/docker-quick-start
  • 2. BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DOCKER 101 - Docker Commands - https://dzone.com/articles/docker-command-cheatsheet ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- List images: >docker images --List running docker processes: >docker ps --List all processes that were ever run: >docker ps -a --List only the container IDs: >docker ps -a -q -- Running processes: docker run <image> docker run -d <image> --> run in disconnected / daemon mode docker run --name="Some Name" --> name the running instance docker start <name> --> will restart a closed / exited instance of the image docker exec -it <name> <command> -->run a command within a running container -- without changing the state of the running container docker stop <name> --> stop a running container by using the name -- Cleaning up Docker: docker rm containerid --> removes an instance of the container that was run docker rm `docker ps -a -q` --> remove all stopped containers docker rmi image-name --> removes the docker image and its dependencies --Redirect port: docker run -P --> will redirect the container's port to a random port -- on the host machine's user port (port no 32,000+) docker run -p 8080:80 --> will redirect the container's port 80 to a port 8080 -- on the host machine's user port docker port <container-name> --> will list the port mapping information
  • 3. BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 3 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DOCKER 101 - Tips para usar docker en Windows para configurar servers de BD +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --------------------------------------------------------- Para windows 10 home no funciona el más nuevo Docker Windows installer (533 MB) requiere Win10 PRO, en su lugar se puede usar el dockerToolbox (216MB) Se descarga el DockerTools Se instala con doble click Se corre desde el acceso directo, se abre una terminal y se empieza a configurar tarda como 3 minutos en configurar, al final queda un PROMPT y expone una IP que le asigno a una VM, pe.e 192.168.99.100 *** Se puede interactuar con docker en Windows, usando al menos 2 opciones: 1) Usando el Docker QuickstartTerminal, 2) Usando la interfaz gráfica GUI de Kitematic ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comandos básicos para docker --------------------------------------------- $ docker --version -- muestra la version del docker $ docker-machine ip -- saber la IP del docker $ docker-machine ls -- da un listado de la maquinas corriendo $ docker-machine url -- da el URL de acceso, p.e tcp://192.168.99.100:2376 -- da un listado de las imagenes que tiene descargadas localmente $ docker image ls --> es equivalente a $ docker images -- descarga una mini VM con una app que imprime el hola mundo $ docker run hello-world -- descarga una MV de ubuntu y abre su bash... con exit terminal $ docker run -it ubuntu bash -- descarga la ultima imagen del centos $ docker pull centos:latest -- corre la MV del centos y se abre en modo shell interactivo $ docker run -it centos:latest -- da un listado de los contenedores que estan corriendo localmente $ docker container ls $ docker ps -- es igual -- listado de los contenedores que han corrido al menos una vez $ docker container ls -a
  • 4. BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 4 -- ******* BORRADO de IMAGENES y CONTAINERs *********************** -- CUIDADO: al borrar una imagen *** una imagen es diferente del -- container.. Si tuviera asociado un container se tendrá que forzar -- o borrar previamente el container $ docker rmi <imageName:imagenTag> -f -- -forzar -- *** borrar imagenes UNTAGGEDs <none>:<none> $ docker rmi $(docker images -q -f dangling=true) -- borrar un contenedor -- *** Aguas, pudiera estar corriendo como un servicio. $ docker rm <dockerName:Tag> -- ó tambien: $ docker rm <container_ID> -- terminar la sesion con el docker $ exit
  • 5. BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 5 - - ******* Utilización de DOCKERS para BASES DE DATOS ****************** -- Instalar el docker para MYSQL -- ++++ Docker de MySQL https://hub.docker.com/_/mysql/ - - ********************************************************************* $ docker pull mysql -- descarga el ultimo docker para MySQL $ docker pull mysql:5.7 -- descarga la version 5.7, la 8.0 tiene detalles -- de compatibilidad en la autentificacion -- habria que usar "mysql_native_password" -- En la documentacion indica que así se lanza el server $ docker run --name nombreDelServer -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag -- de esta forma se podra usar el mySQL server como daemon, -- pero solo dentro del docker... -- **Se puede PUBLICAR(exponer) el puerto** para acceder desde la PC host -- se corre el server de MySQL, se le asigna una Tag y el pass del root $ docker run -p 3306:3306 --name mysql57 <-- se escribe todo de corrido -e MYSQL_ROOT_HOST=% -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7 $ docker run -p 3307:3307 --name server55 -e MYSQL_ROOT_HOST=% -e MYSQL_ROOT_PASSWORD=password -d mysql:5.5 -- --name asigna un nombre al contenedor. -- -e permite asignar valores a run time variables, -- como el pass del root con: 'MYSQL_ROOT_PASSWORD' y -- el HOST con 'MYSQL_ROOT_HOST' -- -d configura el contenedor como un daemon (corre en segundo plano) -- se checa si queda corriendo el mysql $ docker container ls -- Si quisieramos eliminar una instancia del docker se usa "rm". -- se puede usar para reconfigurar un docker $docker rm mysql57 <-- <servername> el nombre asignado con --name --checar los logs del mysql server <servername> $ docker logs mysql57 --checar datos finos de la configuracion del docker, como la IP interna $ docker inspect mysql57 -- regresa un jSON con todos los datos -- matar el proceso, reiniciar, iniciar, parar, el container del server $docker kill mysql57 $docker restart mysql57 $docker start mysql57 $docker stop mysql57
  • 6. BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 6 -- +++ conexiones al MySQL server ------------------------------------------ -- conectarse dentro del docker como cliente al puerto default 3306 -- ** CUIDAR el nombre de la imagen que corresponda con su etiqueta, -- porque sino tratará de instanciar un "mysql:latest" -- --link <mysql57:mysql> --rm <mysql:5.7> -- servername:imagen imagen:tag $ docker run -it <-- para establecer session interactiva en la misma terminal --link mysql57:mysql <--enlazar al contenedor del server --rm mysql:5.7 <--borra el contenedor al terminar sesion sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"' -- version más corta sin incluir referencia al pass $ docker run -it --link mysql57:mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p' -- version aún más corta, usando directamente los valores e IP de la VM $ docker run -it --link mysql57:mysql --rm mysql:5.7 sh -c 'exec mysql -h192.168.99.100 -uroot -p' -- Otra forma de lanzar el cliente de mysql (mysql.exe) -- es sin instanciar un nuevo Docker, utilizando el mismo container -- del server que ya está corriendo … con docker EXEC -- $docker exec -it <instancia> <comando> $ docker exec -it mysql57 mysql -uroot -ppassword -P3306 -- se puede omitir el -h y asumirá localhost, se puede omitir también el -P -- ++++++++ Para conexiones desde la maquina Host +++++++++++++++++++++++++ -- 1) obtener IP de VM: $docker-machine ip -> (192.168.99.100) -- 2) Haber instanciado el server con el puerto expuesto -- 3) conectar con consola cliente o workbench >mysql -h192.168.99.100 -P3306 -uroot -p
  • 7. BASES DE DATOS y CONTENEDORES (dockers) – Facultad de Telemática – BDA 2019A – rherrera@ucol.mx 7 - - ******** INSTALAR el docker para PostgreSQL server ************* -- https://hub.docker.com/_/postgres/ - - ***************************************************************** -- descargar docker de PostgreSQL server $docker pull postgres:9.5 -- con el tag “9.5” se indica la version 9.5, si no será 'latest' -- correr la imagen del Postgre como server (daemon), $ docker run -p 5432:5432 --name pgserver95 -e POSTGRES_PASSWORD=password -d postgres:9.5 -- -p 5432:5432 se publica el puerto interno del docker como publico -- --name , -e -d similares a la ejecucion del MySQL -- +++ conexiones al servidor del posgreSQL +++++++++++++++++++++++++++++++++ -- una vez expuesto el puerto, se podria conectar desde el pgAdmin u otros -- conectarse via terminal con el cliente "psql.exe" $ docker run -it --link pgserver95:postgres --rm postgres:9.5 psql -h postgres -U postgres -- cuidar el nombre de la imagen que corresponda con su respectiva etiqueta, -- porque sino tratará de instanciar un "postgres:latest" -- --link <pgserver95:postgres> --rm <postgres:9.5> -- servername:imagen imagen:tag /* comandos basicos para terminal "psql.exe": ? ayuda sobre comandos pgsql l lista las databases dt lista las tablas c conecta a DB q salir */ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++