Está en la página 1de 4

Vamos a crear un contenedor con un servidor web como es WordPress instalado

y lo vamos a enlazar con otro contenedor que es un servidor de base de datos


MySQL.

Primero utilizaremos las imágenes oficiales de WordPress y MySQL que las


encontramos en Dockerhub.

$ docker images

Esta herramienta (Docker) nos va a permitir enlazar contenedores enviando y


compartiendo información de manera segura. Debemos tener en cuenta al
momento de asociar los contenedores, usar el nombre con el que creamos el
contenedor ya que nos sirve de referencia para luego enlazarlo.

Ahora vamos a crear un contenedor desde la imagen MySQL y le vamos a dar el


nombre de contenedor1_mysql, para eso vamos a utilizar la siguiente
instrucción:

$ docker run –name contenedor1_mysql -e MYSQL_ROOT_PASSWORD=1234 -d


mysql
Realmente con esta instrucción lo que hicimos fue asignar la variable de entorno,
la cual es obligatoria y quedó 1234.

Ahora vamos a crear otro contenedor con el nombre contenedor2 cuyo servidor
web a utilizar será la imagen de WordPress y de una vez lo enlazamos con el
contenedor anterior.

$ docker run –name contenedor2_wp -p 70:70 --link contenedor1_mysql: mysql -d wordpress

En la instrucción anterior, para asociar los contenedores utilizamos el parámetro


--link que indica el nombre del contenedor asociado, el cual lleva también un
alias, con el cual nos podemos referir después. Si queremos comprobar la
asociación de los contenedores ejecutamos la siguiente instrucción:

$ docker inspect -f “{{ .HostConfig.Links }}” contenedor2_wp [/contenedor1_mysql:/contenedor2_wp/mysql]

Esta instrucción nos indica que el contenedor2_wp tiene acceso a la información


del otro contenedor, en nuestro caso se llama contenedor1_mysql y Docker lo
realiza construyendo un túnel seguro entre ambos ya que al momento de la
creación del contenedor1_mysql no usamos el parámetro -p. Algo importante
para facilitar la comunicación entre los contenedores es el uso de variables de
entorno alojadas en el archivo hosts.

Vamos ahora a iniciar los contenedores, primero el contenedor1

Y ahora el contenedor2

También podemos instanciar un contenedor


Cuando realizamos asociaciones de contenedores, Docker también crea
variables de entorno, en nuestro caso en el contenedor2_wp, se usarán las
siguientes:

 MYSQL_NAME que llevará el nombre del contenedor1_mysql.


 MYSQL_PORT_3306_TCP_ADDR por cada puerto que expone la imagen
donde se creó el contenedor1 se crea una variable de entorno de este tipo
y por lo general su contenido es la dirección IP del contenedor.
 MYSQL_PORT_3306_TCP_PORT acá igualmente, por cada puerto se
crea una imagen y se guarda el puerto que se expone.
 MYSQL_PORT_3306_TCP_PROTOCOL de acuerdo, al número de
puertos expuestos por la imagen, se crean una por cada puerto y se
guarda el protocolo del puerto.
 MYSQL_PORT en esta variable se va a guardar la url del contenedor y su
dirección ip, lo mismo que el puerto menos expuesto.

Para terminar, debemos tener presente que por cada variable de entorno que
definimos en el contenedor1_mysql, también se crea una en el contenedor
principal y esto lo podemos comprobar creando un contenedor, el cual
eliminaremos de manera inmediata con el comando -rm y nos va a mostrar la
información general de nuestros contenedores.

Existe otra manera de tener comunicaciones entre los contenedores y es


modificando el archivo host el cual podemos encontrar en
C:\Windows\System32\Drivers\etc para que haya resolución estática entre ellos y
esto lo podemos comprobar si creamos otro contenedor.

Contenedores corriendo

También podría gustarte