Instalación de Docker con Ubuntu 16.04 LTS, Mint 17 y CentOS 7
Una breve introducción a la virtualización
Hoy aprenderemos a instalar Docker con Ubuntu, Mint y CentOS 7 Linux. Antes de la evolución del concepto de virtualización, para ejecutar una aplicación se requería un servidor dedicado, si deseaba ejecutar 20 aplicaciones como servicios DNS de servidor de correo, servidor web o Además, era necesario comprar 20 servidores dedicados y cada aplicación apenas consumía entre el 5 y el 10 % de la capacidad total de la CPU, por lo que era un desperdicio total de recursos. Para deshacerse de tal desperdicio de recursos, se introdujo el concepto de virtualización, donde los hipervisores construyen una capa en el hardware donde se pueden instalar múltiples máquinas virtuales y se comportan y saben como servidores independientes reales. Este concepto de virtualización fue una revolución en la utilización de recursos y el proceso de reducción de costos.
Una breve introducción a los contenedores.
Aunque la virtualización basada en hipervisor cambió las reglas del juego, pronto se dio cuenta de que existen ciertos problemas incluso con ese concepto de virtualización de hipervisor, sin duda pudimos ejecutar múltiples sistemas operativos en una sola CPU, pero aún existía la necesidad de múltiples sistemas operativos. para múltiples servicios y no todos los sistemas operativos eran gratuitos para formar la licencia que aún requerían comprar, además, cada sistema operativo virtual consume una gran cantidad de CPU, disco duro y RAM. Para superar el problema del hipervisor sediento de recursos, se introdujo un nuevo concepto de virtualización a nivel del sistema operativo.
Podemos considerar los contenedores como pequeñas cápsulas que tienen su propio entorno operativo individual que comparte el núcleo del sistema operativo principal y estos contenedores se comportarán como un sistema operativo independiente, tendrán su propio directorio raíz y otros sistemas de archivos, propiedades de red y procesos como init o systemd, tienen su propia jerarquía de procesos y los procesos que se ejecutan en un contenedor no pueden enviar señales a otro proceso que se ejecuta en un contenedor separado y ejecutar sus aplicaciones de forma independiente tal como se ejecutan en un entorno virtual basado en hipervisor. Podemos indicar la contenedorización como " Virtualización a nivel del sistema operativo”, la CPU se instala directamente en la CPU y los recursos del kernel del sistema operativo principal son compartidos por instancias del espacio de usuario. Todos los contenedores comparten recursos de CPU, pero sus límites se definen a través del espacio de nombres del kernel, las particiones se definen para cada contenedor para que puedan usar recursos y bibliotecas dentro de sus límites. Otra característica importante de los contenedores es el cgroup o grupo de control que puede agrupar procesos de contenedores y puede definir qué porcentaje puede consumir este grupo de procesos; este porcentaje de intercambio de recursos es bastante flexible y puede disminuir o aumentar según sea necesario.
Una breve historia de Docker
Docker es un tiempo de ejecución de contenedores y también una empresa, combina todas las capacidades de un contenedor y forma un producto. Formalmente era un proyecto interno de la empresa dotClous que proporciona plataforma como servicio, fue iniciado por Solomon Hykes. en Francia, se puede decir que es el padre de Docker, Docker está escrito en el lenguaje Google go y se lanzó por primera vez en marzo de 2013 con una versión 0.9. Docker tiene licencia de código abierto. Inicialmente, Docker se basaba en contenedores LXC, pero surge un problema porque no pueden controlar el desarrollo de LXC. Entonces escriben un nuevo recurso de controlador que se llama libcontainer. se hizo popular muy pronto, más de 17000 desarrolladores contribuyen a Docker, que aumenta entre 200 y 300 usuarios por mes, más de mil aplicaciones compatibles con Docker, Red Hat, IBM, Cisco, etc., son los principales contribuyentes a Docker. más de 2600 estrellas de GitHub y el vigésimo proyecto de GitHub más destacado. Chef, Puppet o Open Stalk son compatibles con Docker; además, los servicios en la nube de AWS, Rackspace y Azure brindan soporte para Docker. Docker proporciona capacitación, documentación y soporte.
Instalación de Docker con Ubuntu 16.04
Tenemos instalado un sistema operativo Ubuntu 16.04 nuevo, actualice el sistema primero
apt-get update
Instalar Docker es una tarea bastante fácil, ejecute el comando
apt-get install docker.io
Después de la instalación, verifique el estado del servicio Docker.
/etc/init.d/docker status
Verificar la versión de la ventana acoplable
docker version
Habilitar para ejecutar Docker en el momento del arranque
update-rc.d docker defaults
Descargar el contenedor Docker de Ubuntu
docker pull ubuntu
Verificar el contenedor de Ubuntu descargado
docker images
Para ingresar a ese contenedor de Ubuntu, proporcione el siguiente comando y entrará automáticamente, la opción -i lo hará interactivo y -t asignará tty al contenedor.
docker run -i -t ubuntu
Para salir del contenedor, escriba salir.
Buscar contenedor CentOS
docker search centos
Centos no está instalado, intentemos ejecutar ese contenedor, puede notar que comenzará a instalar la imagen de centos.
docker run -it centos /bin/bash
¡Enumere las imágenes instaladas nuevamente!
Si desea salir del contenedor sin cerrarlo, presione Ctrl+P+Q, saldrá del contenedor sin detenerlo, ejecute el siguiente comando y podrá ver que el contenedor todavía está activo después de salir con Ctrl +P+Q.
docker ps
La instalación de Docker con CentOS 7 no es tan diferente a la de Ubuntu 16.04, instale una versión nueva de CentOS y actualice
yum update
instalar la ventana acoplable
yum install docker
Verifique la versión de Docker cuando esté instalada, puede notar que la versión de Docker es diferente a la de Docker instalada en Ubuntu.
Extraer la imagen de Fedroa para la ventana acoplable
Hagamos algunas tareas con el instalador del contenedor fedora.
Instale Apache en el contenedor Fedora usando el comando dnf
Puede notar que los comandos de Fedora funcionan perfectamente en el entorno CentOS 7.
Verifique la versión del kernel dentro del contenedor de Fedora, se puede notar el kernel centos 7, lo que significa que estamos compartiendo el espacio de usuario del kernel de CentOS.
Ahora verifique el sistema operativo instalado
Instalación de Docker con Mint 17 Linux
Agregar repositorio a la fuente APT
# sudo echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list
Importar clave
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
apt-get update
instalar la ventana acoplable
apt-get install docker.io
Cuando intenté tomar una imagen de centos, apareció el siguiente error.
# docker pull centos
FATA[0000] Post http:///var/run/docker.sock/v1.18/images/create?fromImage=centos%3Alatest: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
Para resolver este error necesitamos agregar nuestro usuario al grupo de Docker.
sudo usermod -a -G docker $USER
Docker está funcionando ahora, extraiga la imagen de Ubuntu
¿Cuál es el futuro del proyecto Docker?
Definitivamente, Docker está eliminando la virtualización basada en hiperversor con mucha frecuencia, en el futuro los fabricantes de CPU comenzarán a brindar asistencia a nivel de chip para contenedores y comenzarán a venir como soporte integrado, el soporte a nivel de chip hará que la virtualización a nivel del sistema operativo sea más segura y más eficiente, existe la posibilidad de que varios Habrá contenedores disponibles que se complementarán entre sí y podrán comunicarse entre sí en forma de una sola aplicación, este será un concepto de desarrollo de aplicaciones más independiente y modular. También existe otra posibilidad de que no se requiera un gran procesamiento para las PYMES debido a que las aplicaciones basadas en Docker funcionarán incluso en configuraciones de hardware pequeñas, lo que sin duda aumentará el papel del tipo raspberrypi de hardware integrado de Linux. ¡¡Divertirse!!