minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Compose é um software ferramenta lançado pela Docker Company, que pode gerenciar vários contêineres Docker para formar um aplicativo. Você precisa definir um arquivo de configuração docker-compose.yml no formato YAML e escrever os relacionamentos de chamada entre vários contêineres.Então, com apenas um comando, você pode iniciar/parar esses contêineres ao mesmo tempo
O Docker recomenda executar apenas um serviço em cada contêiner. Como o contêiner do Docker em si ocupa muito poucos recursos, é melhor separar cada serviço separadamente.
Se eu precisar implantar vários serviços ao mesmo tempo, terei que escrever um Dockerfile separado para cada serviço e, em seguida, construir a imagem e o contêiner. Isso é exaustivo, então o docker nos fornece oficialmente a ferramenta de implantação de vários serviços docker-compose? .
Por exemplo, para implementar um projeto de microsserviço da Web, além do próprio contêiner de serviço da Web, muitas vezes é necessário adicionar o contêiner de serviço mysql do banco de dados de back-end, o servidor redis, o centro de registro eureka e até mesmo contêineres de balanceamento de carga, etc. . . . . .
O Compose permite que os usuários definam um conjunto de contêineres de aplicativos associados como um projeto por meio de um arquivo de modelo docker-compose.yml separado (formato YAML).
Você pode definir facilmente um aplicativo de vários contêineres com um arquivo de configuração e, em seguida, usar um único comando para instalar todas as dependências do aplicativo e concluir a construção. Docker-Compose resolve o problema de como gerenciar e orquestrar contêineres.
Endereço de download acelerado
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Adicione permissões executáveis
chmod +x /usr/local/bin/docker-compose
Verifique se a instalação foi bem-sucedida
docker-compose --version
Desinstalar
sudo rm / usr/ local/ bin/docker-compose
Três etapas para usar o Compose
Escreva um Dockerfile para definir cada aplicativo de microsserviço e crie o arquivo de imagem correspondente
Use docker-compose.yml para definir uma unidade de negócios completa e organizar vários serviços de contêiner no aplicativo geral.
Por fim, execute o comando docker-compose up para iniciar e executar todo o aplicativo para concluir a implantação com um clique e ficar online.
Componha comandos comuns
docker-compose -h # Ver ajuda
docker-compose up # Inicia todos os serviços do docker-compose
docker-compose up -d # Inicia todos os serviços docker-compose e executa-os em segundo plano
docker-compose down # Interrompa e exclua contêineres, redes, volumes e imagens.
O ID do serviço em docker-compose exec yml # Insira dentro da instância do contêiner
docker-compose exec arquivo docker-compose.yml escrito ID de serviço /bin/bash
docker-compose ps # Exibe todos os contêineres em execução atualmente orquestrados pelo docker-compose
docker-compose top # Exibe os processos atuais do contêiner orquestrados pelo docker-compose
ID de serviço nos logs docker-compose yml # Visualiza o log de saída do contêiner
docker-compose config # Verifica a configuração
docker-compose config -q # Verifique a configuração e a saída somente se houver problemas
docker-compose restart #Reinicia o serviço
docker-compose start # Inicia o serviço
docker-compose stop # Para o serviço
instalação do comando docker-machine
base=https://get.daocloud.io/docker/machine/releases/download/v0.14.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
1) Na máquina virtual Linux, configure o endereço IP para 192.168.90.215 (x são os últimos 3 dígitos da sua carteira de estudante, y é especificado por você), e a máquina virtual pode acessar a Internet normalmente;
2) Configure o servidor DNS, o domínio é cr.com (abc são as iniciais do seu nome), após a configuração ser concluída, use nslookup para verificar a resolução direta e reversa;
3) Configure o LEMP (ou seja, Nginx + MySQL (MariaDB) + PHP) e acesse o LEMP construído acessando www.cr.com (abc são suas iniciais) através do host real. (Você não pode modificar o arquivo hosts para resolução local, mas deve usar seu próprio DNS configurado)
Primeiro configure um IP estático para Linux http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (se não puder ser aberto, altere o endereço abaixo)
//pendência
Edite o arquivo /etc/named.conf
vim /etc/named.conf
Altere os valores de escuta e consulta para qualquer
Configure o DNS para resolver cr.com para 192.168.90.215
vim /etc/named.rfc1912.zones
Adicione no final do arquivo
zone "cr.com" IN {
type master;
file "cr.com.zone";
allow-update { none; };
};
zone "215.90.168.192.in-addr.arpa" IN {
type master;
file "com.cr.loop";
allow-update { none; };
};
:wq para salvar
Edite o arquivo de configuração correspondente vim /var/named/com.cr.loop
Adicione o seguinte
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR cr.com.
NS ns.cr.com.
ns A 192.168.90.215
201 PTR www.cr.com.
201 PTR email.cr.com.
Edite vim /var/named/cr.com.zone
Adicione o seguinte
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.90.215
AAAA ::1
NS ns.server.com.
ns IN A 192.168.90.215
www IN A 192.168.90.215
email IN A 192.168.90.215
Reinicie o DNS
systemctl restart named
Ver status do DNS
systemctl status named
Iniciado com sucesso
Análise direta nslookup cr.com
Análise reversa nslookup 192.168.90.215
Grave o arquivo docker-compose.yml em /mydocker/lemp
vim /mydocker/lemp/docker-compose.yml preencha o seguinte conteúdo
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
app:
image: php:7.0-fpm
volumes:
- .:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: bookmarks
MYSQL_USER: cr
MYSQL_PASSWORD: cr123
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
Crie nginx/Dockerfile em /mydocker/lemp/
Preencha
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
Crie default.conf
Preencha o seguinte conteúdo
server {
listen 80 default_server;
root /var/www/html;
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /.ht {
deny all;
}
}
Crie php/Dockerfile em /mydocker/lemp/
Preencha
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
Orquestrar contêineres docker
docker-compose up -d
Docker ps para visualizar o status de execução do contêiner
Iniciado com sucesso
Esta máquina acessa o ambiente php e o ambiente nginx através de IP
Acesso bem sucedido
Configure o servidor DNS local como uma máquina virtual, que é 192.168.90.215
Abra a janela do cmd e execute um teste de ping em cr.com
Pingado com sucesso
Acesse o ambiente php construído através do nome de domínio
Modifique o arquivo de configuração nginx
O nome de domínio final acessa diretamente o site