Docker Compose teoría de orquestación de contenedores + caso

Prefacio

Uno: explicación detallada de la orquestación de contenedores de Docker Compose

1.1: ¿Qué es Docker Compose? cual es el efecto?

El predecesor de Docker Compose es Fig, que es una herramienta para definir y ejecutar múltiples contenedores

El uso de Docker Compose ya no requiere un script de shell para iniciar el contenedor

A través de Docker Compose, puede utilizar archivos YML para configurar todos los servicios que requiere la aplicación

Docker Compose es muy adecuado para escenarios donde se combinan varios contenedores para el desarrollo

El archivo YML que acabo de mencionar
YAML es un formato de serialización de datos muy intuitivo con un lenguaje de marcado. Es muy adecuado para expresar o editar estructuras de datos, varios archivos de configuración, esquemas de archivos, etc. Por ejemplo: muchos formatos de encabezado de correo electrónico son muy similares a YAML

Formato de archivo y notas de escritura

1. No se admite la sangría de la tecla Tab. Se requiere sangría de espacio. Utilice la sangría para indicar la relación jerárquica.
2. Por lo general, el comienzo de la sangría es de 2 espacios. La cantidad de espacios con sangría no es importante, siempre que los elementos del mismo nivel estén alineados a la izquierda puede ser
3, sangrado con un carácter de espacio, como dos puntos, coma, una barra cruzada
4, usando un # Nota
5, si los caracteres especiales entre comillas simples
6, los valores booleanos deben estar entre comillas

1.2: Explicación detallada del uso de Docker Compose: pasos de uso, preparación del entorno, formato detallado

Tres pasos utilizados por componer

1. Utilice Dockerfile para definir el entorno de la aplicación.

2. Utilice docker-compose.yml para definir los servicios que componen la aplicación para que puedan ejecutarse juntos en un entorno aislado.

3. Finalmente, ejecute el comando docker-compose up para iniciar y ejecutar toda la aplicación.

Docker compose环境准备

[root@docker ~]# curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose	'//在Linux上我们可以从GitHub上下载它的二进制包来使用,此命令是下载Docker Compose的当前稳定版本'
[root@docker ~]# chmod +x /usr/local/bin/docker-compose
[root@docker ~]# docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3

Ejemplo de estructura de archivo de Docker Compose: docker-compose.yml

1. Escriba el número de versión y el identificador de servicio en el cuadro superior

2. El nombre y el valor del atributo están separados por: (dos puntos más espacio)

3. Use dos espacios para indicar el nivel

4. El atributo de servicio está representado por- (espacio espacio-espacio)

version: '2'	'//compose版本号'
services:	'//服务标识符'
  web:	'//子服务名'
    image: dockercloud/hello-world	'//服务依赖镜像属性'
    ports:	'//服务端口属性'
      - 8080
    networks:	'//网络服务属性'
      - front-tier
      - back-tier
  redis:
    image: redis
    links:	'//容器间的连接设置'
      - web
    networks:
      - back-tier
  lb:
    image: dockercloud/haproxy
    ports:
      - 80:80
    links:
      - web
    networks:
      - front-tier
      - back-tier
    volumes:	'//挂载一个目录或者一个已存在的数据卷容器'
      - /var/run/docker.sock:/var/run/docker.sock 
networks:
  front-tier:
    driver: bridge
  back-tier:
    driver: bridge

1.3: Campos comunes de configuración de Docker Compose

Los campos comunes tienen algunas explicaciones en el formato de archivo yml anterior, la siguiente es una explicación detallada
Inserte la descripción de la imagen aquí

1.4: Docker Compose comandos de uso común

基本的命令格式:docker-compose [选项] [命令] [参数]

docker-compose选项

–verbose:输出更多调试信息

–version:打印版本并退出

-f、–file FILE:使用特定的compose末班文件,默认为docker-compose.yml

-p、–project-name NAME:指定项目名称,默认使用目录名称

Inserte la descripción de la imagen aquí

Dos: Experimento: use Docker-Compose para crear un contenedor

Instalar el entorno de Docker

[root@docker2 compose_nginx]# yum install docker-ce -y

下载软件    docker-compose 
[root@docker2 opt]# ls
  docker-compose 
[root@docker2 opt]# chmod +x docker-compose
[root@docker2 opt]# cp -p docker-compose  /usr/local/bin/
[root@docker2 compose_nginx]# yum install tree -y

2. Crea nginx

                            nginx 操作

Copie la carpeta nginx doekerfile creada anteriormente en el directorio compose_nginx

[root@docker2 compose_nginx]# cd /opt
[root@docker2 opt]# mkdir compose_nginx
[root@docker2 opt]# cd co
compose_nginx/ containerd/
[root@docker2 opt]# cd co
compose_nginx/ containerd/
[root@docker2 opt]# cd compose_nginx/
[root@docker2 compose_nginx]#
将之前造的nginx     DOCKFILE文件夹拷贝到此目录下
[root@docker2 opt]# cp -r nginx compose_nginx/

编辑 yml 文件
[root @ docker2 compose_nginx] # vim docker-compose.yml

version: '3'
services:
 nginx:
  hostname: nginx
  build:
   context: ./nginx
   dockerfile: Dockerfile
  ports:
   - 1216:80
   - 1217:443
  networks:
   - cluster
  volumes:
   - ./wwwroot:/usr/local/nginx/html
networks:
 cluster:

[root@docker2 nginx]# ls
Dockerfile  nginx-1.12.2.tar.gz  run.sh

[root@docker2 opt]# tree compose_nginx/
compose_nginx/
├── docker-compose.yml
└── nginx
    ├── Dockerfile
    ├── nginx-1.12.2.tar.gz
    └── run.sh

correr

[root@docker2 compose_nginx]# docker-compose -f docker-compose.yml up -d

。。。。。。。。。。。。。。。。。。。。。。

Successfully built 1d98e0d8cbcc
Successfully tagged compose_nginx_nginx:latest
WARNING: Image for service nginx was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating compose_nginx_nginx_1 ... done
[root@docker2 compose_nginx]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                         NAMES
5d330373d57c        compose_nginx_nginx   "/run.sh"           5 minutes ago       Up 5 minutes        0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp   compose_nginx_nginx_1
[root@docker2 opt]# tree compose_nginx/
compose_nginx/
├── docker-compose.yml
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.2.tar.gz
│   └── run.sh
└── wwwroot

Inserte la descripción de la imagen aquí

2.2 Crear contenedor Nginx + tomcat

[root@docker2 compose_ngcat]# ls
docker-compose.yml  nginx  tomcat  wwwroot  wwwroot2

Vim  docker-compose.yml

version: '3'
services:
 nginx:
  hostname: nginx
  build:
   context: ./nginx
   dockerfile: Dockerfile
  ports:
   - 1216:80
   - 1217:443
  networks:
   - cluster
  volumes:
   - ./wwwroot:/usr/local/nginx/html
 tomcat:
  hostname: tomcat
  build:
   context: ./tomcat
   dockerfile: Dockerfile
  ports:
   - 1218:8080
  networks:
   - cluster2
  volumes:
   - ./wwwroot2:/usr/local/tomcat8/webapps/ROOT/
networks:
 cluster:
 cluster2:

correr

[root@docker2 compose_ngcat]# docker-compose -f docker-compose.yml up -d
[root@docker2 wwwroot2]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED              STATUS              PORTS                                         NAMES
f7979f0446ca        compose_ngcat_nginx    "/run.sh"                About a minute ago   Up About a minute   0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp   compose_ngcat_nginx_1
d49ee8d19d23        compose_ngcat_tomcat   "/usr/local/tomcat8/…"   About a minute ago   Up About a minute   0.0.0.0:1218->8080/tcp                        compose_ngcat_tomcat_1
[root@docker2 wwwroot2]# ls

[root@docker2 compose_ngcat]# ls
docker-compose.yml  nginx  tomcat  wwwroot  wwwroot2

Prueba de acceso
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/BIGmustang/article/details/108761985
Recomendado
Clasificación