Inicial do Docker

O que é o Docker

Fundo do projeto de código-fonte aberto do Docker

recipiente Docker é baseado em projetos de código aberto linguagem Go dos quais nasceu no início de 2013, a empresa originalmente iniciador é dotCloud Docker desde a atenção da indústria generalizada de código aberto e de participação, há mais de 80 grupo open-source-relacionados
projetos membros (incluindo Containerd Moby Swarm, etc.), formando gradualmente um ecossistema completo em torno dos contêineres do Docker; o dotCloud também se desenvolveu e expandiu rapidamente e foi renomeado diretamente para Docker Inc no final de 2013, com foco no desenvolvimento de tecnologias e produtos relacionados ao Docker, que agora se tornou global O maior provedor de serviços de contêiner do
Docker , o projeto Docker, adicionou a Linux Foundation e segue o protocolo Apache. Todo o código-fonte aberto é mantido em https: // github com / docker project warehouse. O mais recente "projeto de código aberto mais popular" da Linux Foundation "Na pesquisa, o Docker ficou atrás apenas do projeto Open Stack, lançado em 2010, e ainda está em uma tendência ascendente. Em 2014, o número de downloads de imagens do Docker atingiu um milhão, ultrapassou diretamente um bilhão em 2015 e ainda mais em 2017. Dezenas de bilhões de vezes surpreendentes

Fornalha Linux para Doker

Com base no LXC, o Docker otimizou a experiência do contêiner e o deixou entrar na casa das pessoas comuns.Primeiro, o Docker fornece várias ferramentas de gerenciamento de contêineres (como distribuição, versão, porte, etc.), para que os usuários não precisem prestar atenção às operações subjacentes, mais Gerenciamento e uso simples e claro de contêineres; em segundo lugar, o Docker reduz a dificuldade de migração através da construção de um atraente sistema de arquivos em camadas e um eficiente mecanismo de espelhamento, o que melhora bastante a experiência do usuário.
A implementação inicial do código do Docker foi diretamente baseada na versão LXC 0.9. O Docker desenvolveu o projeto li bcotaier como uma implementação mais ampla orientada a contêineres, substituindo a implementação do LXC. A Open Container Alliance tenta tornar o suporte a contêineres não mais limitado ao sistema operacional Linu, mas mais seguro, mais aberto e mais abrangente em termos de gênero.

Por que usar o Docker

Para desenvolvedores e operadores (DevOps), o efeito mais cobiçado pode ser criar ou configurar por vez e executar o aplicativo em qualquer lugar e a qualquer momento, e o Docker é apenas o "canivete suíço" que pode alcançar esse objetivo final. "Especificamente, durante o desenvolvimento, operação e manutenção, o Docker tem as seguintes vantagens:

  • Entrega e implantação mais rápidas usando o Docker, os desenvolvedores podem usar imagens para criar rapidamente um ambiente de desenvolvimento padrão; após a conclusão do desenvolvimento, a equipe de teste e operação e manutenção pode usar exatamente o mesmo ambiente para implantar o código, desde que ele seja desenvolvido e testado. Você pode garantir que a execução do Docker perfeitamente no ambiente de produção possa criar e excluir rapidamente contêineres, obter iteração rápida, economizar muito tempo em desenvolvimento, teste e implantação. Todo o processo é visível durante todo o processo, facilitando para a equipe entender a criação de aplicativos e o processo de trabalho.

  • Utilização mais eficiente dos recursos A execução de contêineres do Docker não requer o suporte de programas adicionais de gerenciamento de virtualização (Virtual Machine Manager, VMM e Hypervisor) O Docker é uma virtualização no nível do kernel que pode obter maior desempenho e recursos adicionais. A demanda é muito baixa.Em comparação com o modo tradicional de máquina virtual, o desempenho do Docker deve ser aprimorado em 1-2 ordens de magnitude.

  • A migração e expansão mais fáceis de contêineres do Docker podem ser executadas em praticamente qualquer plataforma, incluindo máquinas físicas, máquinas virtuais, nuvens públicas, servidores de computadores pessoais em nuvem privada, etc., enquanto suportam as principais versões de compatibilidade com sistemas operacionais desta versão, permitindo que os usuários Migre facilmente aplicativos entre diferentes plataformas.

  • O gerenciamento de atualizações mais simples usa o Dockerfile, que precisa apenas de uma pequena modificação na configuração, que pode substituir uma grande quantidade de trabalhos de atualização no passado.Todas as modificações são distribuídas e atualizadas de maneira incremental, conseguindo um gerenciamento automatizado e eficiente de contêineres.

Docker e virtualização

Características Docker Máquina virtual
Formulário em execução Executar diretamente no kernel do host, diferentes contêineres compartilham o mesmo kernel Linux Executar no Hypervisior
Concorrência Um host pode iniciar centenas de contêineres Até dezenas de máquinas virtuais
Desempenho Processo local próximo ao host Inferior ao host
Utilização de recursos Alta Baixo
Isolamento Isolamento seguro Completamente isolado

Conceitos principais do Docker

  • Imagem

  • Container

  • O Repositório (Repositório)
    entende apenas esses três conceitos principais para entender com êxito todo o ciclo de vida dos contêineres do Docker

  • Imagem do Docker A imagem do
    Docker é semelhante a uma imagem da máquina virtual; pode ser entendida como um modelo somente leitura.
    Por exemplo, uma imagem pode conter um ambiente básico de sistema operacional no qual apenas aplicativos Apache (ou outro software exigido pelo usuário) estão instalados, podendo ser chamada de imagem Apache.
    As imagens são a base para a criação de contêineres do Docker

  • Contêineres do Docker Os contêineres do
    Docker são semelhantes a uma caixa de proteção leve.O Docker usa contêineres para executar e isolar
    contêineres de aplicativos . Os contêineres de aplicativos são criados a partir de instâncias de execução de imagem do aplicativo. Ele pode ser iniciado, iniciado e excluído. Esses contêineres são isolados um do outro. Pode-se observar que o contêiner pode ser considerado como uma versão simples do ambiente do sistema Linux (incluindo permissões de usuário raiz, espaço de processo, espaço de usuário e espaço de rede etc.) e a caixa na qual os aplicativos em execução nele são empacotados.

  • Armazém do Docker
    Um local para armazenar imagens.O armazém é dividido em armazém público e armazém particular. O maior armazém público é o hub Docker (hub.docker.com), o armazém público doméstico (dockerpool.com)

Arquitetura do Docker

O Docker usa um padrão de arquitetura cliente / servidor (C / S) e usa APIs remotas para gerenciar e criar contêineres do Docker.
Os contêineres do Docker são criados a partir de imagens do Docker.

Architecture One

  • A distribuição é responsável por interagir com o registro do docker, carregando a imagem do banho e os dados de origem relacionados ao registro v2

  • O registro é responsável por operações interativas relacionadas à autenticação de identidade, pesquisa espelhada, verificação espelhada e espelho do registro de gerenciamento relacionados ao registro do docker

  • A imagem é responsável pelo armazenamento e pesquisa relacionados aos dados de origem do espelho, ao índice da camada de espelho, à pesquisa e às operações de importação e exportação relacionadas ao pacote tar do espelho

  • A referência é responsável por armazenar os nomes de repositórios e tags de todos os espelhos locais e manter o relacionamento de mapeamento com o ID do espelho

  • O módulo de camada é responsável pela adição, exclusão e modificação dos dados de origem da camada de imagem e da camada de contêiner e é responsável pelo mapeamento da adição, exclusão e modificação da camada de imagem para o módulo do driver gráfico que realmente armazena o arquivo da camada de imagem

  • graghdriver é o executor de todas as operações relacionadas ao espelhamento de contêineres

Arquitetura 2


Esse diagrama de arquitetura torna a arquitetura mais clara

  • o daemon docker é o lado do servidor do daemon docker, que pode ser remoto ou local.Não é uma arquitetura C / S? O cliente Docker cliente se comunica através da API restante

  • docker cli é usado para gerenciar contêineres e imagens. O cliente fornece uma imagem somente leitura e, em seguida, vários contêineres podem ser criados através da imagem. Esses contêineres podem ser apenas um RFS (sistema de arquivos raiz do sistema de arquivos raiz) ou um aplicativo que contém aplicativos do usuário. RFS, o contêiner é apenas para o processo no cliente docker, os dois processos não são visíveis um para o outro

  • O usuário não pode interagir diretamente com o servidor, mas pode interagir através da ponte com o contêiner.Por ser uma tecnologia virtual no nível do sistema operacional, a perda intermediária pode ser quase inexperiente

Instalação do Docker

Meio ambiente

  • Centos7 Going Out

Configurar encaminhamento de NIC

## 配置网卡转发,看值是否为1
$ sysctl -a |grep -w net.ipv4.ip_forward
net.ipv4.ip_forward = 1

## 若未配置,需要执行如下
$ cat <<EOF >  /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
EOF
$ sysctl -p /etc/sysctl.d/docker.conf

Yum instalar janela de encaixe

## 下载阿里源repo文件
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

## yum安装
yum install -y docker-ce
## 查看源中可用版本
yum list docker-ce --showduplicates | sort -r
## 安装指定版本
yum install -y docker-ce-18.09.9

## 配置源加速
mkdir -p /etc/docker
vi /etc/docker/daemon.json
{
  "registry-mirrors" : [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://registry.docker-cn.com",
    "https://ot2k4d59.mirror.aliyuncs.com/"
  ]
}

## 设置开机自启
systemctl enable docker  
systemctl daemon-reload

## 启动docker
systemctl start docker 

## 查看docker信息
docker info

Acho que você gosta

Origin www.cnblogs.com/precipitation/p/12689265.html
Recomendado
Clasificación