Acoplable ventana acoplable componer y arreglar las redes y servicio de micro

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
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
Publicados 118 artículos originales · ganado elogios 7 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/qq_43792385/article/details/104768717
Recomendado
Clasificación