Investigación sobre la tecnología de contenedores virtualizados de Docker

Un fondo Docker

  1 modelo de operación del servicio en la nube 

 IaaS (Infraestructura como servicio): infraestructura operativa, como el servidor Alibaba Cloud (solo sistema operativo instalado)

 PaaS (Platform as a Service): plataformas operativas como la plataforma de desarrollo MySQL (plataforma estándar instalada en Linux) y la plataforma de desarrollo redis.

 SaaS (software como servicio): software operativo, como el sistema OA de la compañía (software OA implementado en un servidor remoto) 

2 ¿Qué es Docker?

Docker es una tecnología de contenedor virtualizado. A través de la tecnología de contenedor de virtualización de Docker, los recursos de la máquina física se pueden usar de manera más razonable y efectiva, y una máquina física se puede virtualizar en muchas "computadoras virtuales" con sistemas operativos completos e independientes entre sí. 

Virtualización (virtualización) 

   Una tecnología de gestión de recursos consiste en abstraer y convertir varios recursos físicos de una computadora, como servidores, redes, memoria y almacenamiento, para romper las barreras inseparables entre las estructuras físicas, de modo que los usuarios puedan comparar el grupo original. Una mejor manera de aplicar estos recursos. La nueva parte virtual de estos recursos no está limitada por la forma en que se configuran los recursos existentes, geográfica o físicamente. En general, los recursos de virtualización incluyen potencia informática y almacenamiento de datos.

En el entorno de producción real, la tecnología de virtualización se utiliza principalmente para resolver la reestructuración y la reutilización de la sobrecapacidad del hardware físico de alto rendimiento y la capacidad del hardware antiguo es demasiado baja, transparente el hardware físico subyacente, para maximizar el uso del hardware físico

  Clasificación de la tecnología de virtualización.

  Virtualización de software, virtualización de hardware, virtualización de memoria, virtualización de red, virtualización de escritorio, virtualización de servicios, máquina virtual

  Docker es una implementación basada en la tecnología de virtualización del sistema operativo 

3 VM vs Docker

Velocidad de inicio rápida El   sistema operativo de inicio del contenedor Docker se puede completar en segundos, pero VMware ha alcanzado el nivel de minutos

Bajo consumo de recursos del sistema   Un servidor Linux puede ejecutar miles de contenedores Docker, mientras que VMware solo puede ejecutar unos 10 al mismo tiempo

Migración y expansión más   fáciles Dado que los contenedores Docker ocupan menos espacio en el disco duro que VMware, en el caso de que se deban crear varios conjuntos de entornos de software, es más rápido y más conveniente migrar los contenedores Docker instalados. Y los contenedores Docker pueden ejecutarse en casi cualquier plataforma, incluidas máquinas virtuales, máquinas físicas, nubes públicas, nubes privadas, computadoras personales, etc. Esta compatibilidad permite a los usuarios migrar directamente una aplicación de una plataforma a otra.

Dos conceptos básicos de Docker 

Docker contiene cuatro conceptos básicos:

 Imagen

 Contenedor

 Centro de registro de almacén (registro)

 Repositorio 

1 espejo 

 La imagen Docker (Imagen) es una plantilla de solo lectura. La imagen Docker se puede usar para crear contenedores Docker

 La relación entre la imagen Docker y el contenedor Docker es similar a la relación entre clase y objeto en Java.

Docker proporciona un mecanismo muy simple para crear una imagen o actualizar una imagen existente. Los usuarios pueden incluso descargar una imagen ya preparada directamente de otros para usarla directamente. 

2 contenedores 

Docker utiliza contenedores para ejecutar aplicaciones.Los contenedores son instancias creadas a partir de imágenes. Se puede iniciar, iniciar, detener y eliminar. Cada contenedor es una plataforma aislada que garantiza la seguridad. 

3 Registro y repositorio 

El registro es un lugar para almacenar archivos de imagen de manera centralizada. El repositorio es para clasificar y administrar las imágenes que contiene.

Habrá múltiples repositorios en un registro y habrá múltiples 
imágenes con diferentes etiquetas en un repositorio 

El registro se divide en dos formas: pública y privada. 

El registro público más grande es Docker Hub, que almacena una gran cantidad de imágenes para que los usuarios las descarguen y usen

El registro público nacional incluye Netease Cloud, DaoCloud, AliCloud, etc., que pueden proporcionar un acceso más estable y rápido

Los usuarios pueden crear un registro privado localmente

Después de que el usuario crea su propia imagen, puede usar el comando push para cargarla en el registro público o privado, de modo que la próxima vez que use la imagen en otra máquina, solo necesite extraerla del registro y ejecutarla.

 

Instalación de tres Docker 

1 El sistema operativo predeterminado oficial está instalado en Ubuntu

Puede desinstalar yum -y remove docker antes de
 instalar 

Instalación:
 yum install -y docker 

Inicio:
 systemctl start docker

#systemctl start docker.service 

Lista de espejos 

imágenes de la ventana acoplable 

Repositorio: el nombre del almacén donde se encuentra
 el espejo Etiqueta: la versión del espejo
 ID de la imagen: el ID del espejo 

Creado: Tiempo de creación de imagen
 Tamaño: Tamaño de imagen

Espejo de búsqueda 

nombre de la imagen de búsqueda del acoplador 

 NOMBRE: nombre del almacén 
 DESCRIPCIÓN: descripción del espejo 
 ESTRELLAS: evaluación del usuario, que refleja la popularidad de un espejo 
 OFICIAL: si es oficial AUTOMATIZADO: construcción automática, lo que indica que el espejo es creado por el proceso de construcción automática de Docker Hub

2 Tire de la imagen 

Docker Hub ( https://hub.docker.com/  ) es el registro público predeterminado de docker, pero la desventaja es que la descarga doméstica será más lenta

Tire de ustc

Edite el archivo en la máquina host (centos7 no admite el comando vim, pero admite el comando vi): vi /etc/docker/daemon.json 

Unirse 

{"registro-espejos": ["https://docker.mirrors.ustc.edu.cn"]

Por último, debe reiniciar el servicio acoplable 

acoplador de reinicio systemctl 

centinela pull centos: 7 

3 Eliminar espejo 

Eliminar la imagen especificada

repositorio docker rmi: etiqueta

docker rmi imageID 

Eliminar todos los espejos 

docker rmi $ (imágenes de docker -q) 

Al eliminar, si las ID de imagen de las imágenes son las mismas, debe eliminarlas en un cierto orden, porque hay una referencia entre las imágenes.

4 Importar y exportar imágenes (migración de imágenes) 

Exportar la imagen: 

docker guardar repositorio: tag / imageId> /root/xx.tar.gz 

docker save -o mynginx.tar mynginx 

-o archivo de salida 

Importar imagen: 

carga acoplable </root/xx.tar.gz 

docker load -i mynginx.tar 

-i Ingrese el archivo y verifique la imagen nuevamente después de la ejecución, puede ver que la imagen ha sido restaurada 

Tres contenedores Docker 

1 Crear y ejecutar el contenedor 

Crear comando contenedor: Docker Run 

Descripción de los parámetros utilizados comúnmente para crear contenedores:

 -i: significa ejecutar el contenedor 
 -t: significa que el contenedor ingresará a su línea de comando después de comenzar. Después de agregar estos dos parámetros, la creación del contenedor puede iniciar sesión. Es decir, se asigna un pseudo terminal. 
 --name: nombra el contenedor creado. 
 -v: indica la relación de asignación de directorio (el primero es el directorio del host, el último está asignado al directorio en el host), puede usar múltiples -v para hacer la asignación de múltiples directorios o archivos. Nota: Es mejor hacer un mapeo de directorios, hacer cambios en la máquina host y luego compartirlos en el contenedor. 
D -d: agregar el parámetro -d después de la ejecución, se creará un contenedor de demonios para que se ejecute en segundo plano (de modo que el contenedor no se inicie sesión automáticamente después de crear el contenedor, si solo se agregan dos parámetros -i -t, se creará automáticamente después de la creación En el contenedor). 
 -p: indica el mapeo de puertos, el primero es el puerto host, el último es el puerto mapeado en el contenedor. Puede usar múltiples -p para la asignación de múltiples puertos 

Ejecute el contenedor de forma interactiva

docker run -i -t --name repositorio del nombre del contenedor: etiqueta / bin / bash 

docker run -it --name nombre del contenedor imageID / bin / bash

Ejecuta el contenedor como un demonio: 

docker run -di --name repositorio del nombre del contenedor: etiqueta 
docker run -di --name nombre del contenedor imageID

Después de crear e ingresar el contenedor a través de la ejecución, si el comando de salida se usa para salir del contenedor, el contenedor se detiene. Ingrese el contenedor nuevamente, primero use start para iniciar el contenedor, use el comando exec / attach para ingresar al contenedor 

2 Inicie el contenedor 

nombre del contenedor de inicio de Docker o ID del contenedor 

3 Ingrese el contenedor 

El comando para ingresar al contenedor en ejecución es el siguiente: 

docker exec -it nombre del contenedor o ID del contenedor / bin / bash 

Docker adjuntar nombre del contenedor o ID del contenedor

Después de conectarlo al contenedor, si usa exit para salir del contenedor, el contenedor se detiene 

Después de que exec ingrese al contenedor, use exit para salir del contenedor, el contenedor aún se está ejecutando.

4 Ver contenedor 

docker ps: ver contenedores en ejecución

docker ps -a: ver los contenedores históricamente ejecutados

docker ps -l: ver contenedores ejecutados recientemente

5 Detener el contenedor 

nombre de contenedor de detención de Docker o ID de contenedor 

6 Eliminar contenedor 

Eliminar el contenedor especificado:   nombre del contenedor docker rm o ID del contenedor 

Eliminar todos los contenedores:  docker rm 'docker ps -a -q' 

7 Copiar archivos 

docker cp archivo de origen texto de destino

docker cp /root/boot.war my-centos: / usr / local / 

/root/boot.war es la ruta de la máquina host

my-centos es el nombre del contenedor

/ usr / local / es la ruta en el contenedor. El
archivo de origen puede ser el archivo en la máquina host o el contenedor. Del mismo modo, el archivo de destino puede ser el archivo en el contenedor o la máquina host.


 Cuatro aplicaciones Docker

docker pull mysql: 5.6 

imágenes de la ventana acoplable 

Crear contenedor mysql

docker run -di --name exp_mysql -p 33306: 3306 -e MYSQL_ROOT_PASSWORD = root mysql: 5.6 

-p significa mapeo de puertos, el formato es puerto mapeado de host: puerto de ejecución del contenedor 

-e significa agregar la variable de entorno MYSQL_ROOT_PASSWORD es la contraseña de inicio de sesión del usuario root 

Ingrese el contenedor de MySQL e inicie sesión en MySQL 

docker exec -it exp_mysql / bin / bash 

Iniciar sesión mysql 

mysql -u root -p 

Inicio de sesión remoto en mysql

 

Ver la dirección IP del contenedor 

docker inspeccionar exp_mysql 


 Cinco espejos hechos a mano.

 

Requisitos: hacer una imagen de tomcat

1 Descargue la imagen base (centos7) docker pull centos: 7 

2 Instale jdk de 64 bits (nota: jdk debe ser el mismo que el número de os) 

vi / etc / profile 

export JAVA_HOME = / opt / jdk export PATH = $ JAVA_HOME / bin: $ PATH 

fuente / etc / perfil 

3 Instalar tomcat 

4 Genera una nueva imagen 

docker commit nombre del contenedor o ID del contenedor nuevo nombre espejo


 


 

 


 


 
 

Publicado tres artículos originales · ganado elogios 4 · Vistas 2058

Supongo que te gusta

Origin blog.csdn.net/liuguangjian2007/article/details/105466924
Recomendado
Clasificación