Artigo Diretório
- 一 、 Docker Compose
-
- (1) Visão geral do Docker Compose
- (2) Orquestração de contêineres Docker Compose
- (3) Campos comumente usados para configuração do Docker Compose
- (4) Comandos comumente usados do Docker Compose
- (5) Compor descrição do comando
- (6) Explicação detalhada sobre o uso do Docker Compose: etapas de uso, preparação do ambiente, explicação detalhada do formato
- (7) Prática: Use Docker-Compose para criar nginx
一 、 Docker Compose
(1) Visão geral do Docker Compose
1. O predecessor do Docker Compose é a Fig. É uma ferramenta para definir e executar vários contêineres do Docker.
2. O uso do Docker Compose não requer mais scripts ShelI para iniciar o contêiner.
3. O Docker Compose é muito adequado para cenários onde vários contêineres são combinados para o desenvolvimento.
(2) Orquestração de contêineres Docker Compose
1. YAML é um formato de serialização de dados muito intuitivo com uma linguagem de marcação
2. Formato de arquivo e precauções para escrita
- O recuo da tecla Tab não é compatível e o recuo do espaço é necessário
- Normalmente recuado 2 espaços no início
- Recuar 1 espaço após o caractere, como dois-pontos, vírgula, barra
- Comentário com sinal #
- Use aspas simples se contiver caracteres especiais
- Os valores booleanos devem ser colocados entre aspas
(3) Campos comumente usados para configuração do Docker Compose
Campo | Descrição |
---|---|
construir o contexto do dockerfile | Especifique o nome do arquivo Dockerfile para construir o caminho do contexto de espelho |
imagem | Espelho especificado |
comando | Execute o comando, substitua o comando padrão |
nome do recipiente | Especifique o nome do contêiner, porque o nome do contêiner é único, se você especificar um nome personalizado, não será possível escalar |
implantar | Especifique a implementação e a configuração relacionada ao serviço de operação, que só pode ser usada no modo Swarm |
ambiente | Adicionar variáveis de ambiente |
redes | Junte-se à rede |
portos | Exponha a porta do contêiner, o mesmo que -p, mas a porta não pode ser inferior a 60 |
volumes | Monte o caminho do host ou volume de comando |
reiniciar | Política de reinicialização, padrão não, sempre, sem falha, a menos que seja interrompido |
nome de anfitrião | Nome do host do contêiner |
(4) Comandos comumente usados do Docker Compose
Campo | Descrição |
---|---|
construir | Reconstrua o serviço |
ps | Contêineres de lista |
acima | Crie e inicie o contêiner |
exec | Execute comandos no contêiner |
escala | Especifique o número de contêineres de serviço para iniciar |
principal | Mostrar processo de contêiner |
Histórico | Ver a saída do contêiner |
baixa | Exclua contêineres, redes, volumes de dados e espelhos |
parar / iniciar / reiniciar | Parar / iniciar / reiniciar serviço |
(5) Compor descrição do comando
1. Formato de uso básico
docker-compose [options] [COMMAND] [ARGS...]
2. opção docker-compose
- --Verbose: produz mais informações de depuração
- --Versão: imprime a versão e sai
- -f, --file ARQUIVO: usa um arquivo de modelo de composição específico, o padrão é docker-compose.yml
- -p, --project-name NAME: Especifique o nome do projeto, o nome do diretório padrão é usado
(6) Explicação detalhada sobre o uso do Docker Compose: etapas de uso, preparação do ambiente, explicação detalhada do formato
1. Três etapas para escrever
- Use Dockerfile para definir o ambiente do aplicativo
- Use docker-compose.yml para definir os serviços que compõem o aplicativo para que possam ser executados juntos em um ambiente isolado
- Por fim, execute o comando docker-compose up para iniciar e executar todo o aplicativo
2. Preparação do ambiente 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
3. Exemplo de estrutura de arquivo Docker Compose: docker-compose.yml
- O número da versão da composição e o identificador do serviço devem ser escritos na caixa superior
- O nome do atributo e o valor do atributo são separados por: (dois pontos mais espaço)
- Use dois espaços para indicar o nível
- Os atributos de serviço são representados por- (espaço espaço-espaço)
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
(7) Prática: Use Docker-Compose para criar nginx
1. Implante o ambiente Docker-Compose
'//Docker都是已经部署好了的,这里不再赘述'
[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的当前稳定版本'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 638 100 638 0 0 149 0 0:00:04 0:00:04 --:--:-- 149
100 10.3M 100 10.3M 0 0 18758 0 0:09:39 0:09:39 --:--:-- 17256
[root@docker ~]# chmod +x /usr/local/bin/docker-compose
[root@docker ~]# docker-compose -v '//查看版本'
docker-compose version 1.21.1, build 5a3f1a3
2. Use Dockerfile para definir o ambiente do aplicativo
[root@docker ~]# mkdir -p /compose_nginx/nginx '//创建目录'
[root@docker ~]# cd /compose_nginx/nginx
[root@docker nginx]# rz -E '//上传nginx源码包'
rz waiting to receive.
[root@docker nginx]# ls
nginx-1.12.2.tar.gz
[root@docker nginx]# vim Dockerfile
FROM centos:7
MAINTAINER build image nginx <gcc>
RUN yum -y update
RUN yum -y install gcc gcc-c++ pcre* make cmake zlib-devel openssh* net-tools lsof telnet passwd vim
ADD nginx-1.12.2.tar.gz /usr/local/src
RUN useradd -M -s /sbin/nologin nginx
WORKDIR /usr/local/src/nginx-1.12.2
RUN (./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module)
RUN make && make install
ENV PATH /usr/local/nginx/sbin/:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf '//指关闭守护进程启动'
CMD ["nginx"]
3. Use docker-compose.yml para definir os serviços que compõem o aplicativo
[root@docker nginx]# cd ..
[root@docker compose_nginx]# vim docker-compose.yml
version: '3'
services:
nginx:
hostname: nginx
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 1216:80
- 1217:443
networks:
- cluster
networks:
cluster:
[root@docker compose_nginx]# tree ./
./
├── docker-compose.yml
└── nginx
├── Dockerfile
└── nginx-1.12.2.tar.gz
4. Execute o comando docker-compose up para iniciar e executar todo o aplicativo
[root@docker compose_nginx]# docker-compose -f docker-compose.yml up -d '//指定ocker-compose.yml文件来启动'
[root@docker compose_nginx]# docker-compose ps '//compose编排工具成功创建容器'
Name Command State Ports
-------------------------------------------------------------------------------------
compose_nginx_nginx_1 nginx Up 0.0.0.0:1217->443/tcp, 0.0.0.0:1216->80/tcp
[root@docker compose_nginx]# docker ps -a '//容器创建成功'
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5ecd884db086 compose_nginx_nginx "nginx" 34 seconds ago Up 33 seconds 0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp compose_nginx_nginx_1
[root@docker compose_nginx]# docker images '//镜像创建成功'
REPOSITORY TAG IMAGE ID CREATED SIZE
compose_nginx_nginx latest fd1cfaa3fa13 38 seconds ago 726MB
5. Teste o
navegador, visite http://192.168.200.60:1217 (IP local: 1216)