GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Qué es Docker, diferencia entre Docker y VM, instalación de Docker y su uso

Anteriormente hemos visto las instalaciones de hipervisores como Xen y middleware en la nube como openstack. Recientemente, una nueva tecnología llamada docker container se ha convertido en la tendencia más popular en el desarrollo de aplicaciones. En este artículo veremos qué es exactamente un docker, sus diferencias con las máquinas virtuales, la instalación de docker y su uso.

¿Qué es Docker?

Docker es un contenedor que envuelve una pieza de software en un sistema de archivos completo que contiene todo lo que necesita para ejecutarse:código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema, cualquier cosa que pueda instalar en un servidor. Los contenedores se virtualizan a nivel del sistema operativo, lo que los hace más eficientes que los hipervisores en el uso de los recursos del sistema. Hay muchas tecnologías de contenedores de Linux como LXC, Docker, etc.,

¿Cuál es la diferencia entre Docker y una Máquina Virtual?

Con un enfoque arquitectónico diferente, los contenedores son mucho más portátiles y eficientes, aunque tienen un aislamiento de recursos similar. La siguiente imagen muestra la diferencia arquitectónica entre un contenedor y máquinas virtuales.

Máquinas virtuales Contenedores 1.Necesita un hipervisor y un sistema operativo completo dentro 1. Habla con el kernel del host 2. Mayor huella (RAM y espacio de almacenamiento) 2. Menos espacio (sin RAM ni almacenamiento diferencial) 3. Las máquinas virtuales consumen espacio de almacenamiento para cada instancia ~1,2 GB 3. Consume mucho menos espacio ~2.5MB 4. Más pesado 4. Ligero 5. El tiempo de inicio de las máquinas virtuales es del orden de minutos 5. El tiempo de inicio es del orden de segundos 6. La implementación es difícil. 6. Fácil implementación con requisitos mínimos para ejecutar la aplicación 7. Más lento 7. Más rápido 8. Problemas de seguridad del sistema operativo en ejecución 8. Problemas de seguridad limitados a las aplicaciones

¿Cómo instalar un contenedor Docker en CentOS 7?

El último lanzamiento oficial de Docker es v1.10. Las instrucciones a continuación son para instalar Docker Container en el servidor CentOS 7. Inicie sesión en el servidor CentOS 7 como raíz y siga los pasos a continuación.

Paso 1: Como práctica recomendada, actualicemos el sistema usando yum como se muestra a continuación:

# yum -y update

Paso 2: Por defecto, Docker está incluido en el repositorio de CentOS-Extra. Si desea utilizar una versión más actualizada de la ventana acoplable, ejecute el siguiente comando para agregar al repositorio.

# tee /etc/yum.repos.d/docker.repo <<-'EOF'
 > [dockerrepo]
 > name=Docker Repository
 > baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 > enabled=1
 > gpgcheck=1
 > gpgkey=https://yum.dockerproject.org/gpg
 > EOF
 [dockerrepo]
 name=Docker Repository
 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 enabled=1
 gpgcheck=1
 gpgkey=https://yum.dockerproject.org/gpg

Paso 3: Instale el paquete docker y el registro docker. El registro de Docker es una aplicación del lado del servidor altamente escalable y sin estado que almacena y le permite distribuir imágenes de Docker.

# yum -y install docker docker-registry

Paso 3: Tras la instalación exitosa de la ventana acoplable, inicie el servicio de la ventana acoplable.

systemctl start docker.service

Paso 4: Asegúrese de que el servicio docker se inicie en el arranque con el siguiente comando:

#  systemctl enable docker.service

Paso 5: Verificar el servicio docker

systemctl status docker.service
docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago
 Docs: http://docs.docker.com
 Main PID: 30108 (docker)
 CGroup: /system.slice/docker.service
 ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04
 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0"
 Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e"
 Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n"
 Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0"
 Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e"
 Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n"
 Hint: Some lines were ellipsized, use -l to show in full.

¿Cómo usar Docker?

Paso 1: Descargue un contenedor Docker. Ejecute el siguiente comando para obtener la última imagen oficial estable de CentOS:

# docker pull centos

El comando anterior extrae la última versión estable de centos. Para extraer cualquier otra versión de la imagen de CentOS, por ejemplo, CentOS 6:

# docker pull centos:centos6

Paso 2: Para verificar que las imágenes se han descargado localmente:

# docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB

Paso 3: Para enumerar todas las imágenes descargadas disponibles:

# docker images

Cómo ejecutar un Contenedor Docker

Paso 1: Ejecute un contenedor Centos básico con un shell bash. Toma, -i opción adjunta stdin y salida estándar , -t asigna un tty .

# docker run -i -t centos /bin/bash

¡Eso es todo! Ahora aterrizará en un bash shell dentro de un contenedor acoplable de centos.

Comandos para trabajar con contenedores Docker

1. Para desconectar o separar del contenedor sin apagar el contenedor:

Ctrl-p + Ctrl-q

2. Ya hay muchos contenedores disponibles por comunidad. Para listar los contenedores de la comunidad:

# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. 2042 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK]
docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK]
...
...
# docker search ubuntu
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK]
docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK]
docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK]
...
...

3. Enumere todos los contenedores

# docker ps -a

4. Enumere solo contenedores en ejecución

# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare

5. Detener un contenedor
Obtenga el ID del contenedor de la lista anterior y utilícelo para detener el contenedor respectivo:

# docker stop 4293c8265d00

6:reinicie el servicio docker

# systemctl restart docker.service

Docker
  1. ¿Cuál es la diferencia entre InnoDB y MyISAM?

  2. diferencia entre podman y docker.

  3. La diferencia entre CMD y ENTRYPOINT en Docker Images

  4. ¿Cuál es la diferencia entre COPIAR y AÑADIR en Dockerfiles?

  5. ¿Cuál es la diferencia entre arm64 y armhf?

Docker:Instalación y uso básico en Ubuntu 16.04

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre las instrucciones COPY y ADD en Dockerfile?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?

¿Cuál es la diferencia entre la llamada al sistema y la llamada a la biblioteca?