1 estibador Perfil
1.1 ¿Qué es la virtualización
En el ordenador, la virtualización (Inglés: La virtualización) es una tecnología de gestión de recursos, las diversas entidades son los recursos de la computadora, tales como servidores, red, memoria y almacenamiento, etc., a ser abstracta, presentada después de la conversión a romper la estructura entre las entidades obstáculos no se puede cortar, por lo que el usuario puede configurar que la mejor manera original para usar estos recursos. Muchos de estos nuevos recursos virtuales no es la forma de configurar los recursos existentes, la configuración geográfica o física está limitada. recursos virtualizados generalmente se hace referencia incluyen la potencia de cálculo y almacenamiento de datos.
En el entorno de producción real, la tecnología de virtualización se utiliza principalmente para resolver el exceso de capacidad de alto rendimiento de hardware físico y la antigua capacidad de hardware de edad es demasiado baja reutilización reorganización, la transparencia subyacente hardware físico para maximizar el uso de los recursos de hardware físicos hacer pleno uso
Existen muchos tipos de tecnologías de virtualización, tales como: la virtualización de software y hardware de virtualización, virtualización de la memoria, la virtualización de red (VIP), la virtualización de escritorios, la virtualización de servicios, máquinas virtuales, y así sucesivamente.
1.2 ¿Qué es la ventana acoplable
Cargador de muelle es un proyecto de código abierto, nació a principios de 2013, fue inicialmente una empresa dotCloud interna del proyecto aficionado. Se basa en la puesta en marcha de la lengua Go de Google. Proyecto tarde se unió a la Fundación Linux, el cumplimiento del protocolo de Apache 2.0, código de proyecto en GitHub realizar el mantenimiento de.
Acoplable ya que la atención generalizada de código abierto y la discusión que las empresas dotCloud fueron posteriormente llamada ventana acoplable Inc. RedHat ha concentrado su ayuda en acoplable RHEL6.5; Google también se usa ampliamente en sus ofertas de PaaS.
La meta del proyecto es acoplable para lograr una solución de virtualización de sistema operativo ligero. Docker es la base de la tecnología Linux contenedores (LXC).
Sobre la base de la LXC estibador era más paquete, para que los usuarios no tienen que preocuparse por la gestión de contenedores, lo que hace la operación más fácil. Acción del usuario contenedores Docker tal como lo hace una máquina virtual rápida y ligera de fácil.
¿Por estibador?
(1) los chips rápidos.
Los usuarios necesitan sólo unos pocos minutos, usted puede poner su propio programa "acoplable de". Acoplable depende de la "copia en escritura" modelo (copy-on-write), los cambios en la aplicación muy rápidamente, se puede decir para lograr "debido al corazón, que es el cambio de código" reino.
Posteriormente, el recipiente puede ser creado para ejecutar la aplicación. La mayoría de contenedores acoplable sólo tiene que empezar en menos de 1 segundo. Debido al programa de gestión de los costes de eliminación, envase acoplable tiene un alto rendimiento, mientras que el mismo host también puede funcionar más contenedores, lo que permite a los usuarios hacer pleno uso de los recursos del sistema como sea posible.
lógica de clasificación (2) funciones
Uso Portuario, los desarrolladores sólo tienen que preocuparse acerca de la aplicación que se ejecuta en el contenedor, y sólo tienen que preocuparse acerca de cómo administrar el contenedor del personal de operación y mantenimiento. el propósito del diseño es acoplable para mejorar los desarrolladores de consistencia entorno de producción para el medio ambiente y el desarrollo de aplicaciones de código de escritura para ser desplegados. reduciendo de esta manera el tipo de "desarrollando todo es normal, sin duda problemas de operación y mantenimiento (el entorno de prueba es normal, en la línea de fuera de la cuestión se reduce a es sin duda el tema de la operación y mantenimiento)."
(3) ciclo de vida de desarrollo rápido y eficaz
Uno de los objetivos es acortar el código de desarrollo del estibador, las pruebas para el despliegue, en línea ciclo de operación, por lo que su aplicación tiene la portabilidad, fácil de construir, y una fácil colaboración. (Cosa popular decir, acoplable es como una caja, que puede contener una gran cantidad de elementos, si necesita estos objetos pueden ser directamente quitarle la caja grande, sin la necesidad de una pieza extraída de la caja.)
(4) fomentar el uso de la arquitectura orientada a servicios
Acoplable también animar a servicios de arquitectura y micro-arquitectura orientada a servicios. Acoplable recomiendan un solo contenedor para funcionar sólo una aplicación o proceso, formando así un modelo de aplicación distribuida, en este modelo, aplicación o servicio puede ser representado como una serie de interconectado el interior del recipiente, de manera que la implementación distribuida aplicación, la extensión o la depuración de aplicaciones son muy simples, sino también mejorar la introspección del programa. (Por supuesto, puede ejecutar múltiples aplicaciones en un recipiente)
1.3 contenedor de la máquina virtual y comparar
La imagen siguiente se comparan las diferencias entre acoplable y forma tradicional de virtualización, contenedores virtualizados son visibles reutilización, directa el sistema operativo anfitrión local, mientras que la forma tradicional se implementa en hardware de nivel a nivel del sistema operativo.
En comparación con la máquina virtual tradicional, la ventaja del estibador se refleja como comienzo rápido, teniendo un pequeño volumen.
1.4 componentes acoplables
1.4.1 servidor y el cliente acoplable
Cargador de muelle es un cliente - servidor de programa de arquitectura (C / S). El cliente sólo necesita servidor acoplable acoplable o demonio hace una petición, el servidor o demonio hará todo el trabajo y devuelve el resultado. Ventana ofrece una herramienta de línea de comandos ventana acoplable y un conjunto de API REST. Puede ejecutar acoplable demonio y el cliente en el mismo host, también puede conectarse desde el cliente local para funcionar a distancia demonio acoplable acoplable en otra máquina host.
1.4.2 envase espejo acoplable
Reflejar es la piedra angular de estibador de. Los usuarios ejecutar su propio reflejo basada en contenedores. Espejo también Docker "acumulación" parte del ciclo de vida. estructura de capas de espejo se basa en un sistema de archivos combinado, paso a paso para construir una serie de instrucciones. Por ejemplo:
Añadir un archivo;
Ejecutar un comando;
Abrir una ventana.
El recipiente también puede ser reflejado como "código fuente". Espejo muy pequeño, muy "portátil", el intercambio fácil, almacenado y actualizado.
Acoplable puede ayudarle a construir y desplegar contenedor, sólo tiene su propia aplicación o servicio puede ser envasados en recipientes. Contenedor se refleja el arranque, el recipiente se puede ejecutar en uno o más procesos. Podemos creer que el espejo se construye o se envasa acoplable etapa del ciclo de vida, y se inicia el envase o la fase de implementación. Sobre la base de un recipiente de inicio reflejado, el contenedor una vez se completa el inicio, que será capaz de iniciar sesión en el contenedor de instalar software o servicios que necesitan.
Así envase acoplable es:
Un formato de imagen;
Algunos columna operativo estándar;
Un entorno de ejecución.
Docker se basa en el concepto de un contenedor estándar. La carga en contenedores estándar que se envía en todo el mundo, acoplable utilizará este modelo para su propio diseño, la única diferencia es: el transporte de contenedores de mercancías, el transporte y el software del estibador.
Y el contenedor como, acoplable al hacer esto, no se preocupan por lo que el contenedor instalado al final, si se trata de un servidor web o una base de datos o un servidor de aplicaciones o algo así. Todos los recipientes en la misma manera que el contenido de la "cargado" en.
Cargador de muelle no se preocupan por la que desea contenedor de transporte: Podemos construir su propio contenedor portátil, cargado en el Registro y descarga en un servidor físico o virtual para probar, desplegar en el buque a un host específico. Al igual que los contenedores estándar, como, estibador conveniencia sustitución del cartucho, se puede superponer, fácil de distribuir y tratar de GM.
1.4.3 Registro (Registro)
Registro acoplable con el usuario para guardar la imagen construida. Registro se divide en público y privado dos clases. compañía opera una ventana acoplable pública registro se denomina conector acoplable. Los usuarios pueden registrarse para obtener una cuenta en acoplable Hub, compartir y guardar su propia imagen (Nota: Docker Hub descarga lenta gigante de la imagen, se puede construir su propio registro privado).
2 Instalación y puesta en marcha del estibador
2.1 Instalación acoplable
oficial del estibador recomienda instalar en Ubuntu, porque acoplable se basa en la liberación de Ubuntu, pero surgen problemas generales del estibador Ubuntu es la primera actualización o parche. En muchas versiones de CentOS no es compatible con algunas de las últimas paquete de actualización de parches.
Ya que estamos usando el ambiente de aprendizaje es CentOS, así que aquí vamos a acoplable instalado en CentOS. Nota: Se recomienda instalar al menos la versión CentOS7.x, en la versión CentOS6.x, es necesario instalar antes de instalar una gran cantidad de otros muchos parches ambientales y Docker no son compatibles con las actualizaciones.
Por favor montaje directo curriculum apoyo espejo Centos7.x
(1) yum update para el último paquete
sudo yum update
(2) requieren paquete de instalación, yum-util proporcionar yum-config-manager función, los otros dos son accionados devicemapper dependiente
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3) Conjunto yum fuente de la nube Ali
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4) montado ventana acoplable
sudo yum install docker-ce
(5) Después de instalar la versión Vista ventana acoplable
docker -v
2.2 Conjunto de espejo USTC
USTC es un veterano del proveedor de servicios espejo Linux, y en la medida en Ubuntu versión 5.04 cuando está en uso. Espejo ventana acoplable acelerador de velocidad USTC rápidamente. Una de las ventajas USTC espejo ventana acoplable hay necesidad de registrarse, es un verdadero servicio público.
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
Editar el archivo:
vi /etc/docker/daemon.json
Introduzca el siguiente en el archivo:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
2.3 acoplable de inicio y parada
systemctl comando es el gestor de los servicios del sistema de mando
Comience ventana acoplable:
systemctl start docker
Detener ventana acoplable:
systemctl stop docker
cargador de muelle de reinicio:
systemctl restart docker
Ver el estado de ventana acoplable:
systemctl status docker
de arranque:
systemctl enable docker
Ver información resumida ventana acoplable
docker info
Vista la documentación ventana acoplable ayuda
docker --help
3 comandos comunes
3.1 reflejo de comandos
3.1.1 Retrovisor
docker images
Repositorio: nombre de la imagen
TAG: etiqueta de la imagen
Identificador de la imagen: Identificación de reflejo
CREADO: Fecha de creación de espejos (no la fecha de adquisición del espejo)
TAMAÑO: tamaño de la imagen
Estas imágenes se almacenan en el var / lib acoplable / / cargador de muelle de acogida
3.1.2 espejo de la búsqueda
Si usted necesita para encontrar la imagen que desea de la red, puede buscar por el siguiente comando
docker search 镜像名称
NOMBRE: Nombre del almacén
DESCRIPCIÓN: Espejo Descripción
ESTRELLAS: evaluación de los usuarios, un espejo de la popularidad de reacción
OFICIAL: son oficiales
AUTOMATIZADO: construir de forma automática, lo que indica que el espejo automáticamente proceso de construcción creado por el Eje acoplable
3.1.3 reflejo tirón
imagen en el espejo de tracción se descarga desde el nivel central al repositorio local
docker pull 镜像名称
Por ejemplo, quiero descargar centos7 Espejo
docker pull centos:7
3.1.4 quitar el espejo
Espejo espejo Identificación de prensa de eliminación
docker rmi 镜像ID
Eliminar todos los espejos
docker rmi `docker images -q`
3.2 comandos relacionados con buques y
3.2.1 Vista de contenedores
Ver recipiente consecutivo
docker ps
Ver todos los contenedores
docker ps –a
Ver la última ejecución del contenedor
docker ps –l
Comprobar contenedor de parada
docker ps -f status=exited
3.2.2 Creación e inicio de contenedores
Crear un contenedor personalizado Parámetros:
Crear un comando de contenedores: correr ventana acoplable
-i: indica el contenedor operativo
-t: unas aperturas traseras de contenedores para la activación de línea de comandos. Después de la adición de estos dos parámetros, el recipiente será capaz de crear registro en. Que se asigna un pseudo-terminal.
--name: contenedor denominado creado.
-v: representa la relación de proyección de directorio (el primero es el directorio del servidor, que se asigna a un directorio en el host), puede utilizar múltiples -v hacer múltiples directorios o asignaciones de archivo. Nota: Es el directorio para el mapeo, hacer cambios en el host, y luego compartir el contenedor.
-d: correr detrás del parámetro -d creará un guardián del contenedor no se registra automáticamente contenedor después (este contenedor se crea en el fondo, añadiendo -i -t si sólo hay dos parámetros, éste se pondrá automáticamente después de la creación contenedor).
-p: mapear el puerto, el primero es un puerto de acogida, que se asigna en el puerto del recipiente. Se puede utilizar la asignación de puertos múltiples -p hacer más
Crear un contenedor (1) el modo interactivo
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
Luego vemos el comando ps, se puede ver el lanzamiento de la embarcación se encontró, de estado en estado de inicio
Salir del contenedor actual
exit
(2) crear el modo de guardia tipo de contenedor:
docker run -di --name=容器名称 镜像名称:标签
Login formas de contenedores tutor:
docker exec -it 容器名称 (或者容器ID) /bin/bash
3.2.3 parada y arranque del contenedor
Detener el contenedor:
docker stop 容器名称(或者容器ID)
Inicio contenedor:
docker start 容器名称(或者容器ID)
3.2.4 copia de archivos
Puede utilizar el comando cp si tenemos que copiar el archivo en el contenedor
docker cp 需要拷贝的文件或目录 容器名称:容器目录
Los archivos también se puede copiar desde el envase
docker cp 容器名称:容器目录 需要拷贝的文件或目录
3.2.5 directorio está montado
Cuando somos capaces de crear un contenedor, el directorio de contenedores en el directorio se asignan host, por lo que podemos modificar el archivo host a un directorio con el fin de influir en el contenedor. Crear un contenedor de volver complemento parámetro -v para el directorio del servidor: contenedores, por ejemplo:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
Si comparte un directorio de varios niveles, los permisos suficientes indicador puede aparecer.
Esto se debe a que el módulo de seguridad de SELinux CentOS7 autoridad de la prohibición, y tenemos que añadir parámetros --privileged = true para resolver el problema sin permiso montado directorio
contenedor dirección IP 3.2.6 Vista
Podemos ver el vaso ejecutando el siguiente comando una variedad de datos
docker inspect 容器名称(容器ID)
También se puede realizar el siguiente comando a la dirección IP directa salida directa
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
3.2.7 contenedor de eliminación
Elimina el contenedor especificado:
docker rm 容器名称(容器ID)
implementación de aplicaciones 4
4.1 implementación de MySQL
mysql espejo (1) Tire
docker pull centos/mysql-57-centos7
(2) crear el contenedor
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
La asignación de puertos -p, anfitrión formato de asignación de puertos: tiempo de ejecución de contenedores en los puertos
-e Añadir la variable de entorno MYSQL_ROOT_PASSWORD en nombre de la contraseña de inicio de sesión del usuario root
(3) mysql inicio de sesión remoto
Conexión del host IP, como el puerto especificado 33306
el despliegue de Tomcat 4.2
(1) Tire Espejo
docker pull tomcat:7-jre7
(2) crear el contenedor
Crear un contenedor -p indica la asignación de direcciones
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
4.3 despliegue Nginx
(1) Tire Espejo
docker pull nginx
(2) crear recipiente Nginx
docker run -di --name=mynginx -p 80:80 nginx
4.4 despliegue Redis
(1) Tire Espejo
docker pull redis
(2) crear el contenedor
docker run -di --name=myredis -p 6379:6379 redis
5 Migración y de copia de seguridad
contenedor de almacenamiento de la imagen es de 5,1
Podemos salvar el buque siguiente comando para el espejo
docker commit mynginx mynginx_i
copia de seguridad de imagen 5.2
Podemos guardar la imagen con el siguiente comando como archivos de alquitrán
docker save -o mynginx.tar mynginx_i
recuperación de la imagen 5.3 y la migración
En primer lugar hemos eliminado mynginx_img espejo y luego ejecutar el comando para ser restaurado
docker load -i mynginx.tar
archivo de entrada -I
Después de realizar al espejo de nuevo, se puede ver la imagen ha sido restaurada
6 Dockerfile
6.1 ¿Qué es Dockerfile
Dockerfile guión es una serie de comandos y parámetros constituido estos comandos a la imagen base y, finalmente, crear una nueva imagen.
1. Para los desarrolladores: proporcionar un entorno de desarrollo coherente para el equipo de desarrollo; 2, a los probadores: Usted puede tomar una imagen de espejo directa construida al desarrollar o construir una nueva imagen de archivo Dockerfile para empezar a trabajar; 3, para el transporte y el personal de mantenimiento: en tiempo de despliegue, permite una migración transparente de aplicaciones.
6.2 Comandos Común
comando | efecto |
---|---|
DE image_name: etiqueta | Que define el uso de la imagen de base para iniciar el proceso de construcción |
nombre_usuario MAINTAINER | Exención de responsabilidad creador espejo |
valor de la clave ENV | Establecer las variables de medio ambiente (se puede escribir múltiple) |
comando RUN | Dockerfile es una parte central (se puede escribir múltiple) |
Añadir source_dir / archivo dest_dir / archivo | Copiar el archivo en el host del contenedor, si se trata de un archivo comprimido, se va a extraer de forma automática después de la replicación |
COPIA source_dir / archivo dest_dir / archivo | Y como ADD, pero si no es un archivo comprimido y descomprimir |
path_dir WORKDIR | Establecer el directorio de trabajo |
6.3 utilizando un script para crear un espejo
pasos:
(1) Crear un directorio
mkdir –p /usr/local/dockerjdk8
(2) Descargar JDK-8u181-linux-x64.tar.gz y cargado en el servidor (máquina virtual) en el directorio / usr / local / dockerjdk8
(3) crear un archivo Dockerfile vi Dockerfile
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
(4) La construcción de la réplica se ejecute
docker build -t='jdk1.8' .
Tenga en cuenta la parte de atrás de los espacios y puntos, no se omiten
(5) la posibilidad de establecer un espejo vista completa
docker images
depósito privado 7 acoplable
7.1 depósito privado creó y configuración
(1) Imagen depósito privado de extracción (se omite este paso)
docker pull registry
(2) Inicio almacén de contenedores privada
docker run -di --name=registry -p 5000:5000 registry
(3) Abra el navegador e introduzca la dirección http://192.168.200.128:5000/v2/_catalog ver {"repositories":[]}
la representación del depósito privado y construir un contenido éxito está vacía
(4) daemon.json modificado
vi /etc/docker/daemon.json
Añadir el siguiente contenido, guardar y salir.
{"insecure-registries":["192.168.184.141:5000"]}
Este paso permite la confianza ventana acoplable dirección de depósito privado
(5) Reiniciar Servicio ventana acoplable
systemctl restart docker
7.2 Duplicación de carga en un almacén privado
(1) Esta marca como espejo privada imagen Almacén
docker tag jdk1.8 192.168.184.141:5000/jdk1.8
(2) contenedor para iniciar de nuevo PW
docker start registry
(3) marcado carga de imágenes
docker push 192.168.184.141:5000/jdk1.8