What is Docker?

Jitesh_Powankar_Photo

Jitesh Powankar

15 de diciembre 2017

Docker es la virtualización a nivel de sistema operativo. Es una herramienta que reduce la complejidad de la comunicación que se requiere entre equipos de personas mientras se implementa el software en la producción. Como desarrollador, podemos construir contenedores que tienen diferentes aplicaciones instaladas en ellos. Podemos entregárselo al equipo de QA y solo necesitarán ejecutar un contenedor para replicar el entorno de desarrollo. Ahora es obvio preguntar, ¿cómo ayuda? Ayuda de tal manera que no hay necesidad de instalar toda la dependencia del software y las aplicaciones por parte del equipo de control de calidad para probar el código, por lo que ahorrará mucho tiempo y energía. También asegura que el entorno de trabajo sea coherente entre todas las personas involucradas en el proceso de desarrollo de la aplicación.

Arquitectura de Docker:

La arquitectura fundamental de Docker es un modelo simple de cliente/servidor, con solo un ejecutable que actúa tanto como cliente como servidor de componentes, dependiendo de cómo invoque el comando.

Docker-architecture

Cliente Docker:

Debe usar al cliente para decirle al servidor qué hacer. Un solo cliente puede dirigirse a cualquier cantidad de servidores.

Servidor Docker:

El servidor realiza el trabajo continuo de ejecutar y administrar sus contenedores. El daemon Docker puede ejecutarse en cualquier cantidad de servidores en la infraestructura.

Instalación de Docker:

CONFIGURAR EL REPOSITORIO

  1. Actualice el índice del paquete apt:
    $ sudo apt-get update
  2. Instale paquetes para permitir que apt use un repositorio a través de HTTPS:
    $ sudo apt-get install \
    apt-transport- https \
    ca-certificates \
    curl \
    software-properties-common
  3. Agregue la clave GPG oficial de Docker:
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. Para configurar el repositorio estable:
     sudo add-apt-repository \
     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) \
     stable"

INSTALE DOCKER

$ sudo apt-get update
$ sudo apt-get install docker-ce

¿Qué son las imágenes Docker?

Las imágenes de Docker consisten de una o más capas del sistema de archivos y algunos metadatos importantes que representan todos los archivos necesarios para ejecutar una aplicación Dockerized. Cada contenedor Docker se basa en una imagen, que proporciona la base de todo lo que implementará y ejecutará con Docker. Para iniciar un contenedor, puede descargar la imagen desde el Docker hub o crear su propia imagen Docker.

¿Qué es un contenedor Docker?

El contenedor Docker es una instancia de la imagen. Puede crear fácilmente varios contenedores desde la misma imagen. Un contenedor es un entorno de ejecución autónomo que comparte el kernel del sistema host y que está aislado de otros contenedores en el sistema.

¿Qué es un archivo Docker?

Un archivo Docker describe todos los pasos necesarios para crear una imagen. Cada línea en un Dockerfile crea una nueva capa de imagen que Docker almacena. Dockerfile puede parecerse al que se muestra aquí, el cual creará un contenedor para una aplicación basada en Node.js

FROM node:8.9.1
MAINTAINER Jitesh Powankar
# Create app directory
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

El campo FROM agrupará la versión 8.9.1 de NODE.JS.

FROM node:8.9.1

El campo MAINTAINER proporciona información de contacto para el autor de Dockerfile, el cual completa el campo de autor en todos los metadatos de las imágenes resultantes:

MAINTAINER Jitesh Powankar

WORKDIR creó el directorio de trabajo para su aplicación dentro del contenedor.

WORKDIR /usr/src/app

La instrucción RUN, puede listar aquí todas las dependencias requeridas por su aplicación.

RUN npm install

La instrucción CMD, que define el comando que inicia el proceso que desea ejecutar dentro del contenedor:

CMD ["npm", "start"]

¿Qué es un archivo de compilación de Docker?

Docker compose es una herramienta para definir y ejecutar aplicaciones Docker de contenedores múltiples. Puede componer un archivo para configurar los servicios de su aplicación. Luego, usando un solo comando, puede crear e iniciar todos los servicios desde su configuración.

Comandos Docker:

  • Verifique versión
    docker --version
  • Verifique información
    docker info
  • Descargue la imagen desde el registro público o el hub de docker.
    docker pull <image-name>
  • Construya imagen
    docker build -t <image_name> .
  • Cree contenedor desde imagen
    docker run -d -p 4000:4000 <username>/<image_name>
  • Inicie sesión en el registro Docker.
    docker login
  • Empuje imágenes al registro
    docker push <username>/<image_name>
  • Inspeccionando un contenedor
    docker inspect <container_id>
  • Inspeccionando una imagen
    docker inspect <image_id>
  • Entrando en un contenedor en funcionamiento
    docker exec -it <container_id> bash
  • Registros de contenedores para Docker.
    docker logs <container_id>
  • Controle/Revise los contenedores activos.
    docker ps
  • Verifique todos los contenedores disponibles en el host
    docker ps -a

Request a quote