docker-compose de automação de microsserviço

docker-compose

O projeto Docker-Compose é um projeto oficial de código aberto do Docker, responsável pela organização rápida de clusters de contêineres do Docker

Ao escrever arquivos docker-compose, vários serviços podem ser iniciados/interrompidos/atualizados ao mesmo tempo (as dependências podem ser definidas e os serviços podem ser iniciados em ordem)

docker-compose divide os contêineres gerenciados em três camadas:

projeto 1 um projeto de microsserviço
serviço N Consiste em N microsserviços
recipiente N E cada microsserviço é composto por N nós

docker-compose.yml forma um projeto, que inclui vários serviços, e cada serviço define a imagem (ou imagem de compilação) do contêiner em execução

O arquivo de configuração de projeto padrão do Docker-Compose é docker-compose.yml

Quando usamos o Docker anteriormente, definimos o arquivo Dockerfile e, em seguida, usamos comandos como docker build e docker run para operar o contêiner. No entanto, o sistema de aplicativos da arquitetura de microsserviço geralmente inclui vários microsserviços e cada microsserviço geralmente implanta várias instâncias. Cada microsserviço deve ser iniciado e interrompido manualmente,

Então, a eficiência é baixa e a quantidade de manutenção é enorme. O uso do Docker Compose pode gerenciar contêineres de maneira fácil e eficiente. É uma ferramenta de aplicativo para definir e executar o Docker de vários contêineres.

Processo de três etapas:

1) Defina o ambiente do aplicativo com um dockerfile, ou uma imagem espelhada, para que possa ser copiado para qualquer lugar.

2) Defina os serviços que compõem o aplicativo em docker-compose.yml para que possam ser executados juntos em ambientes separados.

3) Execute o docker compose para iniciar e executar todo o aplicativo.

instalação e configuração do docker-compose

fazer upload de arquivos

Renomeie docker-compose-Linux-x86_64 para docker-compose

 

Carregue o arquivo docker-compose que acabou de baixar para o diretório /usr/local/bin/ do centos7

cd /usr/local/bin

ler

 

Adicionar permissões executáveis

chmod +x /usr/local/bin/docker-compose

 

Nenhum erro é relatado. Se um erro for relatado, o pip precisa ser baixado

 

Introdução básica ao arquivo de configuração docker-compose.yml

versão: especifica o formato de gravação do arquivo docker-compose.yml

Atualmente, o Compose tem três versões: versão 1, versão 2 e versão 3. O Compose distingue entre a versão 1 e a versão 2 (Compose 1.6.0+, Docker Engine 1.10.0+). A versão 2 oferece suporte a mais instruções. A versão 1 será lançada no futuro está obsoleto.

serviços: coleção de vários contêineres

Serviços:

Recipiente 1:

Recipiente 2:

image: nome da imagem ou ID da imagem. Se a imagem não existir localmente, o Compose tentará extrair a imagem

build: Além da imagem especificada, o serviço também pode ser baseado em um Dockerfile. Ao iniciar com up, a tarefa de compilação é executada. O rótulo de compilação é build e o caminho da pasta onde o Dockerfile está localizado pode ser especificado . O Compose usará o Dockerfile para criar a imagem automaticamente e, em seguida, iniciará o contêiner de serviço usando a imagem

hostname: Ao iniciar um microsserviço altamente disponível (cluster), ele deve ser consistente com a propriedade spring.profiles na configuração do código.

network_mode: Configure o modo de rede do contêiner de serviço

ambiente: configuração da variável de ambiente, você pode usar array ou dicionário de duas maneiras

ambiente:

        RACK_ENV:

        desenvolvimento SHOW: 'ture'

ambiente:

        - RACK_ENV=desenvolvimento

        - MOSTRAR=ture

instruções básicas do docker-compose

docker-compose.yml

 

versão: '3'
serviços:
  nginx:
    container_name: my-nginx
    image: nginx
    ports:
      - 80:80
    volumes:
      - /home/nginx/html:/etc/nginx/html
      - /home/nginx/conf.d:/ etc/nginx/conf.d
      - /home/nginx/log:/var/log/nginx
    restart: sempre

Ver informações da versão

docker-compose -v

Crie e inicie o contêiner

docker-compose

Iniciar um único serviço

docker-compose nome do serviço

Inicie o serviço em segundo plano. Não inicie o serviço em segundo plano, ele pode relatar um erro

docker-compose up -d

Pare e exclua contêineres, redes, volumes, imagens

docker-compose down

Inicie o serviço especificado ou inicie todos os serviços

docker-compose start [nome do serviço]

Pare o serviço especificado ou pare todos os serviços

docker-compose stop [nome do serviço]

listar todos os contêineres em execução

docker-compose ps

Insira o contêiner designado

docker-compose executivo

Excluir todos os contêineres de serviço (parados)

docker-compose rm

parâmetro:

-f: força a exclusão direta, incluindo contêineres ininterruptos

-v: exclui o volume de dados montado pelo contêiner

rede docker-compose

especifique o modo de rede

version: '3'
services:
    nginx:
        container_name: my-nginx
        image: nginx
        ports:
            - 9999:80
        volumes:
            - /home/nginx/html:/usr/share/nginx/html
            - /home/nginx/conf.d:/etc/nginx/conf.d
            - /home/nginx/log:/var/log/nginx
        restart: always
        network_mode: "bridge"

Não é muito bom quando usamos esse tipo de número de porta não fixo toda vez que visitamos

Então precisamos consertar

 redação

network_mode:"bridge"
network_mode:"host"
network_mode:"none"
network_mode:"service:[service_name]"
network_mode:"container:[container name/id]"

Referência a uma rede existente externamente

version: '3'
services:
    nginx:
        container_name: my-nginx
        image: nginx
        ports:
            - 9999:80
        volumes:
            - /home/nginx/html:/etc/nginx/html
            - /home/nginx/conf.d:/etc/nginx/conf.d
            - /home/nginx/log:/var/log/nginx
        restart: always
        networks:
            - test-net
networks:
    test-net:
        external:
            name: mynet

rede personalizada

version: '3'
services:
    nginx:
        container_name: my-nginx
        image: nginx
        ports:
            - 9999:80
        volumes:
            - /home/nginx/html:/etc/nginx/html
            - /home/nginx/conf.d:/etc/nginx/conf.d
            - /home/nginx/log:/var/log/nginx
        restart: always
        networks:
            test-net:
                ipv4_address: 192.168.101.110
networks:
    test-net:
        driver: bridge
        ipam:
            config:
                - subnet: 192.168.101.0/24
                  gateway: 192.168.101.1

Acho que você gosta

Origin blog.csdn.net/m0_60375943/article/details/123261815
Recomendado
Clasificación