Directorio de artículos
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
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:指定项目名称,默认使用目录名称
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
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