Por favor refiérase a la ventana acoplable base Bowen: Resumen del estibador de aprendizaje (utilizando centos7-1804)
1. Red acoplable
Acoplable permitir el acceso externo a la manera recipiente o recipientes interconectados para proporcionar servicios de red. Al instalar acoplable, instala automáticamente una tarjeta de llamada acoplable docker0, acoplable cada recipiente utilizado para las comunicaciones de red y el anfitrión, el segmento de red
172.0.0.1.
1. 1. acoplable concepto básico de la red
acoplable a la red tiene tres conceptos fundamentales: la caja de arena (zona de pruebas), la red (Network), un punto final (punto final).
- Cajón de arena, se proporciona un recipiente pila de red virtual, que el contenido del puerto de socket, IP tabla de enrutamiento, o firewall. Aislamiento anfitrión contenedor de red de la red, unos recipientes completamente separados que forman el entorno de red.
- Red, puede entenderse como una subred virtual dentro de la ventana acoplable, los participantes en la visibilidad de la red y ser capaz de comunicarse entre sí. existe red virtual y la red de acogida está aislado acoplable relación, su finalidad principal es formar un entorno de comunicaciones seguro entre los contenedores.
- End, colocado en el orificio de la pared del recipiente o de la red, el propósito principal de la formación de la puerta de control puede romper un entorno de red cerrada. Cuando el extremo posterior del recipiente está formada con un par de puntos finales de red, tal como en un puente entre los dos, que será capaz de realizar la transmisión de datos.
1. Modo de red 2. acoplable cuatro
Servicio ventana acoplable creará tres redes, puente, de acogida y no hay un modelo de recipiente contenedor compartido en el arranque.
- el modo de puente puente, utilizado principalmente para la comunicación externa, cargador de muelle de contenedores utilizando la red por defecto es el puente. Contenedor de configuración de modo de puente utilizando una configuración de red personalizada
# 配置容器的主机名
docker run --name t1 --network bridge -h [自定义主机名] -it --rm busybox
# 自定义DNS
docker run --name t1 --network bridge --dns 8.8.8.8 -it --rm busybox
# 给host文件添加一条
docker run --name t1 --network bridge --add-host [hostname]:[ip] -it --rm busybox
- anfitrión es el tipo de red de acogida de los medios de red con destino a dichas redes por encima de contenedor, el puerto interno unido directamente puerto correspondiente al huésped, y si el recipiente no utiliza el puerto de servicio, no se vio afectada.
- Ninguno En un sentido, ninguno de la red no debe ser considerada, ya que no utiliza ningún tipo de red, se formará una red recipiente cerrado.
- Recipiente otro recipiente compartió espacio de nombres de red, y el modo de acogida es casi, pero esto no quiere utilizar la red de acogida, pero el uso de la red de contenedores.
1. 3. puertos abiertos
Docker0 como un puente NAT, por lo que el recipiente se obtiene generalmente como una asignación de puertos de direcciones de red privada para lograr ventana acoplable ejecutar el comando utilizando la opción -p para su uso sin tener que añadir manualmente una regla, la opción -p:
-p <containerPort>
将指定的容器端口映射到主机所有地址的一个动态端口
-p <hostPort>:<containerPort>
将容器端口 <containerPort> 映射到指定的主机端口 <hostPort> -p <ip>::<containerPort>
将指定的容器端口 <containerPort> 映射到主机指定 <ip> 的动态端口
-p <ip>:<hostPort>:<containerPort>
将指定的容器端口 <containerPort> 映射至主机指定 <ip> 的端口 <hostPort>
动态端口指随机端口,可以使用docker port命令查看具体映射结果
-P exponer a todos los puertos (puertos EXPONEN se refiere a todos los puertos en la construcción de espejo).
1. 4. Puente personalizada
información de atributos de la red definida docker0 Puente: fichero de configuración /etc/docker/daemon.json para añadir:
{
"registry-mirrors":[
"https://docker.mirrors.ustc.edu.cn"
],
"bip":"192.168.1.5/24"
}
El bip opciones básicas, a saber puente IP es la abreviatura, se utiliza para especificar su propio puente dirección IP docker0; otras opciones se pueden extraer de una conexión remota a través de esta cálculos de dirección, para crear el puente de encargo:
docker network create -d bridge --subnet "172.26.0.0/16" --gateway "172.26.0.1" mybr0
2. Componer acoplable
Antes de que hemos aprendido de Bowen Dockerfile puede utilizar un archivo de plantilla para construir rápidamente su propia imagen y ejecutar el contenedor de aplicaciones. Pero en tiempos de paz, cuando se trabaja, nos encontraremos con más contenedores que se utilizará para complementar cada caso, dicha base de datos un conjunto con nuestra aplicación web, y así sucesivamente. En este caso, cada vez que un contenedor estableció un comando de puesta en marcha se vuelve muy complicada, por lo acoplable Componer nacido. Componer ventana acoplable sólo proporciona sencilla de orquestación, Kubernets más complejos y más populares (K8S), la operación y el mantenimiento K8S sesgo, con el fin de facilitar el uso de ranchero prestado puede crear y administrar cúmulo K8S y el trabajo de servicio orquestación. Antes de uso de referencia Bowen: Rancher2.x Tutorial de inicio
2.1 Introducción
Componer el papel es "correr definición de aplicación y acoplable pluralidad de recipientes." Uso de composición, puede configurar un perfil (formato yaml) en el servicio de la aplicación, y luego usar un comando, puede crear e iniciar todos los servicios referidos en la configuración. Componer dos conceptos importantes:
- Servicios (servicio): una aplicación de contenedor, el contenedor puede incluir varias instancias que se ejecutan en realidad la misma imagen.
- Proyecto (proyecto): una unidad representada por un conjunto completo de servicio asociado al contenedor de aplicaciones compuestas de archivo de definición de ventana acoplable-compose.yml.
2.2 Instalación
Composé apoyar las tres plataformas Windows, Mac, Linux, instalado en diferentes maneras. Que se utiliza aquí es el sistema Linux, el otro método de instalación del sistema puede hacer referencia a la documentación oficial y de código abierto enlace GitHub:
Componer ventana acoplable vínculos de documento oficial: https://docs.docker.com/compose
ventana acoplable Componer GitHub enlace: https://github.com/docker/compose
Hay dos métodos de instalación en Linux, el proyecto de redacción está escrito en Python, usando Python-pip install (instalación rápida, pero bajo la versión), también puede descargar los archivos binarios a través de la instalación de GitHub (instala lenta, puede instalar la versión más reciente).
Con el montaje de Python-pip
Instalar Python-pip
yum install -y epel-release yum install -y python-pip
Instalación de composición del cargador de muelle
pip install docker-compose
Compruebe la instalación
docker-compose version
desinstalación
pip uninstall docker-compose
Por GitHub enlace para descargar e instalar
La instalación requiere privilegios de root, antes de que los usuarios normales pueden agregar comandos sudo
.
Obtener el enlace de descarga a través de GitHub, la versión anterior de la dirección: https://github.com/docker/compose/releases
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
El permiso para descargar un archivo ejecutable binario
chmod +x /usr/local/bin/docker-compose
No puede iniciar el programa, establecer el vínculo de software, tales como:
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Compruebe la instalación
docker-compose version
Si se trata de un sistema binario, la instalación, elimine los archivos binarios.
rm /usr/local/bin/docker-compose
2.3 Ejemplo sencillo
Componer muy sencillo de utilizar, sólo se necesita escribir una ventana acoplable-compose.yml, y luego usar el comando de composición del cargador de muelle puede funcionar. estibador-compose.yml describe la configuración del recipiente, el comando ventana acoplable-componga describe el funcionamiento de los recipientes. Utilizamos un proyecto de micro-servicio para hacer un ejemplo sencillo, en primer lugar crear un directorio de trabajo de composición, y luego crear una carpeta Eureka, que puso un paquete jar ejecutable y escribir un archivo Dockerfile, estructura de directorios es la siguiente:
compose
-eurekaDockerfile
-eureka-server-1.0.0.RELEASE.jar
Crear un directorio de archivos de redacción ventana acoplable-compose.yml archivo de plantilla y escribe el siguiente
version: '1'
services:
eureka:
build: ./eureka
ports:
- 3000:3000
expose:
- 3000
2. 4 archivos de plantilla de estibador de redacción comandos comúnmente usados
- imagen
nombre o imagen especular especificado identificación, si la imagen no existe a nivel local, de composición intenta tirar hacia abajo.
Ejemplo:image: java:8
- crear
el archivo Dockerfile ruta especificada. Una ruta de acceso puede ser, por ejemplo:build: ./dir
puede ser un objeto, y para especificar los parámetros Dockerfile, por ejemplo:build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1
- comando
para cubrir el comando por defecto se ejecuta después de que el buque inició. Ejemplo:command: bundle exec thin -p 3000
puede ser una lista, similar al formato total de comando Dockerfile CMD es como sigue:command: [bundle, exec, thin, -p, 3000]
- enlaces
enlaces a otros servicios en el contenedor. Se puede especificar el nombre del servicio y SERVICIO aliasing vinculado: ALIAS forma o sólo especificar el nombre del servicio, ejemplo:web: links: - db - db:database - redis
- external_links
indica un enlace a un contenedor de ventana acoplable-compose.yml externo, ni siquiera gestión de composición del envase, especialmente para aquellos que prestan servicios compartidos comunes o contenedor. formato similar con enlaces, ejemplo:external_links: - redis_1 - project_db_1:mysql - project_db_1:postgresql
- puertos
expuestos información del puerto. Uso de puerto de host: la adaptación del formato de contenedor o único puerto contenedor especificado (en este caso serán designados aleatoriamente puerto de host), similar a la carrera -p estibador, ejemplos:
ports:
- "3000"
- "3000-3005"
- "8000:8000"
- "9090-9091:8080-8081"
- "49100:22"
- "127.0.0.1:8001:8001"
- "127.0.0.1:5000-5010:5000-5010"
- exponer
el puerto expuesta, dejando al descubierto sólo la conexión al puerto de servicio, que no están expuestos al host, ejemplos:expose: - "3000" - "8000"
- volúmenes
ruedan montar configuración de la ruta. Path puede proporcionarse host (HOST: CONTAINER) más o modo de acceso (HOST: CONTAINER: ro). Ejemplo:
volumes:
# Just specify a path and let the Engine create a volume
- /var/lib/mysql
# Specify an absolute path mapping
- /opt/data:/var/lib/mysql
# Path on the host, relative to the Compose file
- ./cache:/tmp/cache
#User-relative path
- ~/configs:/etc/configs/:ro
#Named volume
- datavolume:/var/lib/mysql
- volumes_from
montado de otro servicio o el volumen del recipiente. De sólo lectura o de lectura y escritura se puede especificar, si no se especifica el modo de acceso, el valor predeterminado es de lectura. Ejemplo:
volumes_from:
service_name
service_name:ro
container:container_name
container:container_name:rw
- entorno de
la variable de entorno. Se puede utilizar una matriz o un diccionario de dos maneras. Sólo una clave variables de entorno se pueden encontrar en el valor correspondiente en la máquina de composición en funcionamiento, lo que ayuda el valor de cifrado de host o especial. Ejemplo:
environment:
RACK_ENV: development
SHOW: 'true'
SESSION_SECRET:
environment:
- RACK_ENV=development
- SHOW=true
- SESSION_SECRET
- env_file
variables de entorno desde un archivo, pueden ser una lista separada o ruta del archivo. Si el archivo de plantilla es especificado por -f archivo de composición del cargador de muelle, la ruta se basa en la env_file ruta del archivo de plantilla. Si usted tiene un nombre de variable y el entorno de comandos de conflicto, la envirment prevalecer. Ejemplo:
env_file:
.env env_file:
- ./common.env
- ./apps/web.env
- /opt/secrets.env
- se extiende
hereda de otro servicio, ampliar los servicios existentes. - neto
ajustado el modo de red. Ejemplo:
net:
"bridge"
net: "host"
net: "none"
net: "container:[service name or container name/id]"
- dns
configuración de DNS del servidor. Puede ser un valor, que puede ser una lista. Ejemplo:
dns: 8.8.8.8
dns: - 8.8.8.8 - 9.9.9.9
- dns_search
área de búsqueda DNS configurado, puede ser un valor, o puede ser una lista de ejemplos:
dns_search:
example.com dns_search:
- dc1.example.com
- dc2.example.com
- Otra
ventana acoplable-compose.yml hay muchos otros comandos, puede remitir los documentos oficiales de archivos ventana acoplable-compose.yml: https://docs.docker.com/compose/compose-file/ .
2.5 Uso acoplable Componer coreografía SpringCloud microService
Utilice orquesta desechables ventana acoplable de composición de tres microceldas eureka Servicio (Eureka-server.jar), curso de Servicio (curso-server.jar), el servicio maestro (profesor-server.jar). Crear un directorio de trabajo y la ventana acoplable a componer el archivo de plantilla; crear tres carpetas Eureka directorio de trabajo, por supuesto, el maestro y un buen tres servicios se construyeron archivo de imagen a Dockerfile ejemplo Eureka:
# 基础镜像
FROM java:8
# 作者
MAINTAINER qqxhb
# 把可执行jar包复制到基础镜像的根目录下
ADD eureka-server.jar /eureka-server.jar
# 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效
EXPOSE 3000
# 在镜像运行为容器后执行的命令
ENTRYPOINT ["java","-jar","/eureka-server.jar"]
estructura de archivos del directorio:
compose
docker-compose.yml
eureka
Dockerfile
eureka-server.jar
teacher
Dockerfile
teacher-server.jar
course
Dockerfile
course-server.jar
Escribir ventana acoplable a componer el archivo de plantilla:
version: '1'
services:
eureka:
image: eureka:v1
ports: - 8080:8080
course:
image: course:v1
ports: - 8081:8081
teacher:
image: teacher:v1
ports: - 8082:8082