Docker Overview

Docker é uma para o desenvolvimento, entrega e plataforma aberta para a execução de aplicativos. Docker permite aplicações separadas e infra-estrutura que pode rapidamente entregar software. Com Docker, da mesma forma que você pode gerenciar aplicativos para gerenciar a infra-estrutura. Ao usar o método para entregar rapidamente Docker, testes e implantação de código, você pode reduzir significativamente o atraso entre a escrita de código e funcionando em um código ambiente de produção.

plataforma Docker

Fornecendo solto encaixe isolado ambiente (referido como um recipiente) para compactar e executar a funcionalidade da aplicação. Isolamento e segurança para que você pode executar vários recipientes simultaneamente em um determinado host. Container é muito leve, porque não precisa carregar procedimentos de gestão adicionais, mas é executado diretamente no hospedeiro kernel. Isto significa que em comparação ao uso de uma máquina virtual, você pode executar mais recipientes em um determinado combinações de hardware. Você pode até mesmo executar contentores Docker é realmente um host de máquina virtual!

Docker fornece ferramentas e plataformas para gerenciar o ciclo de vida da embalagem:

  • Utilizar um recipiente para desenvolver a aplicação e os seus componentes de suporte.
  • distribuição recipiente e tornar-se uma aplicação de teste de unidade.
  • Quando pronto, o pedido pode ser utilizado como um recipiente ou serviço orquestrada implantação de um ambiente de produção. Se o seu ambiente de produção é o centro local de dados, provedor de nuvem híbrida, ou ambos, eles são os mesmos.

motor Docker

motor Docker é um cliente - aplicativos de servidor, tem os seguintes componentes principais:

  • O servidor está executando um programa de longo prazo, chamados daemons (comando dockerd).
  • API REST, que especifica um número de interfaces, o programa pode ser usado para se comunicar com e instruir sua operação daemon.
  • A interface de linha de comando do cliente (CLI) (comando janela de encaixe).

Docker Components Engine

uso CLI Docker Docker RESTO daemon controle API ou interagir com Docker daemon, através de um script ou diretamente através dos comandos CLI. Docker muitos outros aplicativos usam a API subjacente e CLI.

Daemon criar e gerir encaixe objectos, tais como espelhos, os contentores, e os volumes de rede.

Nota: Docker licença de código aberto para licença Apache 2.0.

Docker pode fazer?

Forma rápida e consistente entregar a sua candidatura

Docker simplifica o processo de desenvolvimento e permite aos desenvolvedores usar um ambiente padronizado, aplicações e serviços para o trabalho recipiente local. Container é ideal para integração contínua e entrega contínua (CI / CD) workflow.

Considere o seguinte cenário de exemplo:

  • Os desenvolvedores escrever código localmente, e usar os contentores Docker para compartilhar seu trabalho com os colegas.
  • Eles usam Docker suas aplicações empurrados para um ambiente de teste, e executar o teste automático e manual.
  • Quando os erros desenvolvedores são encontrados, eles podem ser reparados no ambiente de desenvolvimento, e então re-implantado no ambiente de teste para testar e verificação.
  • Após o teste é concluído, a imagem atualizada simplesmente empurrado para o ambiente de produção.

Em resposta à expansão e implantação

recipiente Docker plataforma de carga de trabalho baseado permite altamente portátil. contentores Docker pode ser, os dados dos centros máquina física ou virtual, em um provedor de nuvem ou ambientes mistos em execução nos desenvolvedores laptop locais.

Portabilidade e propriedades leves Docker também permite que você gerencie facilmente cargas de trabalho dinâmicas, e instrui aplicações e serviços escaláveis ​​com base nas necessidades de negócios, quase em tempo real.

Executar mais cargas de trabalho no mesmo hardware

Docker leve e rápido. É baseado em um hipervisor de máquina virtual, e uma alternativa de baixo custo, você pode usar mais poder de computação para alcançar os objetivos de negócio. Docker é ideal para ambientes de alta densidade, bem como pequenas e médias implementações, e você precisa usar menos recursos para fazer mais coisas.

arquitetura Docker

Docker usando uma arquitetura cliente - servidor. Docker Docker entre o cliente eo daemon pode se comunicar uns com os outros, daemon para concluir a construção, operação e distribuição de contentores Docker trabalho pesado. cliente Docker eo daemon pode ser executado no mesmo sistema também pode ser conectado a um daemon cliente remoto Docker Docker. cliente Docker e Daemon API REST usado para se comunicar em um socket UNIX ou uma interface de rede.

architecture.svg

demônio

daemon Docker ( dockerd) pedido e a API escuta Docker Docker gerido objetos, por exemplo, um espelho, um recipiente, e o volume de rede. Daemon também outros programas podem se comunicar com os serviços de back-end para gerenciar Docker.

cliente Docker

cliente Docker ( docker) é a principal forma de interação Docker Docker com o usuário. Quando você usa tal docker runum comando e similares, o cliente será enviado para estes comandos dockerde, em seguida, executá-los. dockerComando Docker API. cliente Docker pode se comunicar com um daemon pluralidade.

registro Docker

Docker Docker de registro de armazenamento de imagens. Docker Hub é um registro qualquer público pode usar e, por padrão, Docker foi configurado para olhar no espelho Docker Hub. Você pode até mesmo executar o seu próprio centro de registo privado. Se Docker Data Center (DDC), que compreende a Docker confiável de registro (DTR).

Use docker pullou docker runcomando, a configuração do registro do espelho desejado puxando. Use docker pusho comando, o espelho vai empurrar configuração do registro.

Docker objeto

Ao usar Docker, você está criando e usando um espelho, recipiente, rede, volume, plug-ins e outros objetos. Esta seção é uma visão breve de alguns dos objetos.

Mirroring

O espelhamento é um modelo só de leitura, que contém instruções para criar recipiente Docker. Normalmente, uma imagem espelhada do outro, e alguma personalização. Por exemplo, você pode construir a imagem baseada no Ubuntu e instalar o servidor Apache Web e sua aplicação, e informações de configuração necessárias para executar o aplicativo.

Você pode criar sua própria imagem, você também pode usar a alguém espelho pessoa publicado no Registro. Para construir a sua própria imagem, você pode usar uma sintaxe simples para criar uma Dockerfile, definição de passos necessários para criar uma imagem espelhada. Cada instrução Dockerfile cria uma imagem de camada. Quando você altera Dockerfile e reconstruir a reconstrução de imagem apenas as camadas que foram alterados. Em comparação com outras tecnologias de virtualização, que é a imagem no espelho tão leve, pequeno e parte rápido da razão.

recipiente

O recipiente é um exemplo em funcionamento, podem ser espelhadas. Você pode criar o uso Docker API ou CLI, iniciar, parar, mover ou recipientes de exclusão. Você pode recipiente é ligado a um ou mais armazenamento anexado à rede, ou mesmo criar uma nova imagem com base em seu estado atual.

Por defeito, o grau de isolamento entre o recipiente e outros recipientes e o hospedeiro é relativamente alta. É possível controlar a embarcação de rede, o grau de isolamento entre o subsistema e a armazenagem subjacente ou outros hospedeiros ou outro recipiente.

Criar ou configurar o contêiner quando ativado por as definições previstas no espelho também. Depois de remover o recipiente, o Estado não é armazenado em alterações de armazenamento persistentes desaparecerão.

docker run Exemplo comando

Execute os seguintes comandos ubuntu contêiner e linha de comando interativamente ligado à sessão local, em seguida, executar /bin/bash.

$ docker run -i -t ubuntu /bin/bash

Quando você executar este comando, acontece o seguinte (supondo que você está usando a configuração de registro padrão):

  1. Se nenhum espelho ubuntu local, o Docker vai puxar sua configuração do registro, o equivalente a executar manualmente docker pull ubuntu.

  2. Docker criar um novo recipiente, o equivalente a executar manualmente o docker container createcomando.

  3. Docker um sistema de arquivos de leitura e gravação atribuída ao recipiente, como a última camada. Isso permite a operação do navio criar ou modificar arquivos e diretórios em seu sistema de arquivos local.

  4. Docker criou uma interface de rede para ligar o recipiente para a rede padrão, porque você não especificar quaisquer opções de rede. Por defeito, o recipiente pode ser ligado a uma rede externa utilizando a rede hospedeira.

  5. recipiente Docker e iniciar a execução /bin/bash. Porque o contêiner é uma operação interativa, e tem sido ligado ao seu terminal (devido -ie -talgarismos), você pode usar o teclado para digitar comandos.

  6. Quando você entra exitterminar /bin/bashcomando, o navio vai parar, mas não serão excluídos. Você pode reiniciar ou excluí-lo.

serviço

Você pode estender o contêiner de serviço entre vários daemons, os daemons trabalhar juntos para formar um cluster enxame, incluindo múltipla final de gestão e um final de trabalho. Cada membro do cluster enxame são Docker daemon, e todos os programas em segundo plano usar Docker API para se comunicar. Serviço permite definir o estado desejado, por exemplo, o número deve estar disponível em qualquer cópia de tempo de serviço. Por padrão, essa carga de serviço de balanceamento entre todos os nós de trabalho. Para os consumidores, o serviço Docker é como um aplicativo separado. Docker Engine suporta o modo de cluster enxame em Docker 1.12 e posterior.

A implementação subjacente

Docker com Go gravação e usar várias funções do kernel do Linux para realizar a sua função.

espaço Command ( namespace)

Docker usa uma técnica chamada um espaço de nomes para fornecer isolamento da área de trabalho chamado recipientes. Quando você executa o recipiente, Docker cria um conjunto de namespaces para o recipiente.

O espaço de nomes proporciona uma camada de isolamento. Todos os aspectos do recipiente são executados em um espaço separado, e acesso a ele é limitado ao espaço de nomes.

Docker Engine usa os seguintes namespaces no Linux:

pidNamespace: isolamento do processo (PID: Process ID). netNamespace: interface de rede de gestão (NET: de Rede). ipcNamespace: gerenciar o acesso a recursos de IPC (IPC: comunicação entre processos). mntNamespace: gerencia o sistema de arquivos pontos (MNT: Mount) montar. utsNamespace: isolamento e identificador de versão do kernel. (UTS: Unix sistema de compartilhamento de tempo).

Os grupos de controlo (grupos de controlo)

motor Docker no Linux também depende do outro é chamado o grupo controle ( cgroupstecnologia). CGroup limitar a aplicação em um conjunto específico de recursos. controle Docker permite que o grupo motor para compartilhar os recursos de hardware disponíveis para o navio e restrições seletivamente e restrições. Por exemplo, você pode restringir um recipiente de memória especial disponível.

Joint File System (sistemas de arquivos da União)

sistema de arquivos ou sistema de arquivos Estados UnionFS opera através da criação de uma camada, tornando-o muito leve e rápido. Docker Motor UnionFS fornecido para o recipiente usando os blocos de construção. UnionFS Docker Motor pode usar múltiplas variantes, incluindo AUFS, btrfs, VFS e de Dispositivo.

formato contêiner

namespace Docker Motor, às UnionFS controle e combinação invólucro chamados formato do recipiente. O formato contêiner padrão libcontainer. No futuro, Docker propensos a apoiar outros formatos de contêiner por meio da integração BSD prisões ou tecnologia Solaris Zones.

O próximo passo

Acho que você gosta

Origin www.cnblogs.com/jiutong9u/p/docker-guides.html
Recomendado
Clasificación