Beruflich Dokumente
Kultur Dokumente
guiadev.com/introduccion-docker-parte-3/
Dificultad: Intermedio
Tiempo de Lectura: 5 minutos
En esta oportunidad siguiendo con nuestra muestra de como utilizar Docker en nuestros
ambientes de desarrollo y orientandonos netamente en hacer ejercicios prácticos hoy
queremos guiarlos en la instalación de un ambiente LEMP (Linux Nginx MySQL PHP-
FPM) en sistema operativo Centos 6.8 y le vamos a realizar la instalación de estos
contenedores mediante archivos DockerFile.
Crear carpeta para separar nuestros Dockerfiles en este caso vamos a crear una carpeta
llamada Centos6.8
mkdir Centos6.8;
cd Centos6.8;
touch Dockerfile;
nano -w Dockerfile;
Agregamos al DockerFile la imagen del sistema operativo Centos y la versión 6.8 con el
comando FROM https://hub.docker.com/explore/
# El Comando FROM nos permite importar cualquier imagen en este caso Centos 6.8
FROM centos:6.8
* Para probar este punto solo podemos ejecutar lo siguiente en nuestra consola, en donde
crearemos una imagen en base al contenido del dockerfile
Se debe ver algo como esto que indica que se esta creando la imagen llamada
infranetworking y esta descargando la imagen de Centos 6.8
1/5
Step 1 : FROM centos:6.8
7: Pulling from library/centos
a3ed95caeb02: Download complete
da71393503ec: Downloading 44.33 MB/70.58 MB
Al finalizar podemos ejecutar lo siguiente para ver la lista de imagenes actuales en Docker
en donde figurara una imagen llamada infranetworking
Importante para seguir haciendo pruebas es conocer como borrar la imagen que hemos
creado de prueba, seria con el siguiente comando
# Instalamos utilidades
RUN yum install -y wget
2/5
Instalación de Mysql 5.5 (mariaDB)
Ejecutar el archivo completo seria con el siguiente comando para que nos cree la
imagen infranetworking
3/5
[infra@localhost Centos6.8]$ sudo docker run -t -i -p 80:80 -p 3306:3306 --name
infratuto infranetworking /bin/bash
[root@e1827a12f80b /]#
[root@e1827a12f80b /]# nginx -v
nginx version: nginx/1.11.1
[root@e1827a12f80b /]# mysql --version
mysql Ver 14.14 Distrib 5.5.50, for Linux (x86_64) using readline 5.1
[root@e1827a12f80b /]# php-fpm -version
PHP 5.5.36 (fpm-fcgi) (built: May 25 2016 16:01:56)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
[root@e1827a12f80b/]# /etc/init.d/nginx start
Starting nginx: [ OK ]
[root@b4f9ec0b28f0 /]# /etc/init.d/php-fpm start
Starting php-fpm: [ OK ]
[root@b4f9ec0b28f0 /]# /etc/init.d/mysqld start
Initializing MySQL database: Installing MySQL system tables...
160621 15:42:14 [Note] /usr/libexec/mysqld (mysqld 5.5.50) starting as process 118
...
OK
Filling help tables...
160621 15:42:14 [Note] /usr/libexec/mysqld (mysqld 5.5.50) starting as process 125
...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h b4f9ec0b28f0 password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems at http://bugs.mysql.com/
[ OK ]
Starting mysqld: [ OK ]
Conclusión
Como pudimos ver tenemos la opción de poder crear nuestras imágenes personalizadas
con instalaciones de servicios también personalizados y todo en un archivo de texto el cual
podemos ir mejorando a través del tiempo, esta es la forma correcta de crear ambientes de
desarrollo escalable para cualquiera que programe en nuestro equipo y que solo el
desarrollador se preocupe por el código no por la infraestructura.
4/5
Ya que podemos crear un archivo base, luego al hacer algún cambio podemos decirle al
desarrollador que borre su imagen actual y vuelva a instalar la nueva imagen para que
tenga los nuevos cambios en la plataforma ya que sera siempre lo más parecido a
producción. Para la siguiente entrega hablaremos de los Microservicios, donde
exploraremos como una imagen nos sirve para tener cada servicio de forma independiente
a nivel de contenedores y poder enlazarlos así vía Docker.
Lecturas recomendadas:
DockerFile
5/5