Galeria de mapas mentais mapa mental do contêiner do ambiente virtual docker
Este é um mapa mental sobre o Docker, um contêiner de ambiente virtual que pode empacotar o ambiente de desenvolvimento, código, arquivos de configuração, etc. no contêiner e publicá-lo e aplicá-lo a qualquer plataforma. Espero que isto ajude!
Editado em 2023-11-05 20:10:22Il s'agit d'une carte mentale sur les anévrismes intracrâniens, avec le contenu principal, notamment: le congé, l'évaluation d'admission, les mesures infirmières, les mesures de traitement, les examens auxiliaires, les manifestations cliniques et les définitions.
Il s'agit d'une carte mentale sur l'entretien de comptabilité des coûts, le principal contenu comprend: 5. Liste des questions d'entrevue recommandées, 4. Compétences de base pour améliorer le taux de réussite, 3. Questions professionnelles, 2. Questions et réponses de simulation de scénarios, 1. Questions et réponses de capacité professionnelle.
Il s'agit d'une carte mentale sur les méthodes de recherche de la littérature, et son contenu principal comprend: 5. Méthode complète, 4. Méthode de traçabilité, 3. Méthode de vérification des points, 2. Méthode de recherche inversée, 1. Méthode de recherche durable.
Il s'agit d'une carte mentale sur les anévrismes intracrâniens, avec le contenu principal, notamment: le congé, l'évaluation d'admission, les mesures infirmières, les mesures de traitement, les examens auxiliaires, les manifestations cliniques et les définitions.
Il s'agit d'une carte mentale sur l'entretien de comptabilité des coûts, le principal contenu comprend: 5. Liste des questions d'entrevue recommandées, 4. Compétences de base pour améliorer le taux de réussite, 3. Questions professionnelles, 2. Questions et réponses de simulation de scénarios, 1. Questions et réponses de capacité professionnelle.
Il s'agit d'une carte mentale sur les méthodes de recherche de la littérature, et son contenu principal comprend: 5. Méthode complète, 4. Méthode de traçabilité, 3. Méthode de vérification des points, 2. Méthode de recherche inversée, 1. Méthode de recherche durable.
janela de encaixe
conceito básico
Docker é um contêiner de ambiente virtual que pode empacotar o ambiente de desenvolvimento, código, arquivos de configuração, etc. no contêiner e publicá-los e aplicá-los a qualquer plataforma Um projeto de código aberto implementado em linguagem go, em conformidade com o protocolo Apache2.0, e o código do projeto é mantido no GitHub
vantagem
Rápido: O desempenho do tempo de execução é rápido e as operações de gerenciamento (iniciar, parar, iniciar, reiniciar, etc.) são todas em segundos ou milissegundos.
Leve: O contêiner não possui kernel próprio e não há virtualização de hardware. Aplicativos e sistemas são "containerizados" sem adicionar sistemas operacionais adicionais.
Docker define o padrão de imagem e o padrão de execução do contêiner.
Código aberto, gratuito e de baixo custo
Desvantagens: Todos os contêineres compartilham recursos do kernel Linux e, se os recursos puderem ser utilizados ao máximo, haverá brechas na segurança.
docker-ce: edição da comunidade docker-ee: versão comercial
instalação do docker
Pacote básico
yum-utils wget net-tools nfs-utils lrzsz gcc gcc-c make cmake libxml2-devel openssl-devel curl curl-devel descompacte sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh -servidor socat ipvsadm conntrack
Pacote de dependência
yum-utils: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
device-mapper-persistent-data: Device Mapper é um mecanismo universal de mapeamento de dispositivos no kernel Linux 2.6 que suporta gerenciamento de volume lógico. Ele fornece uma arquitetura de kernel altamente modular para implementar drivers de dispositivos de bloco para gerenciamento de recursos de armazenamento.
lvm2: gerenciamento de volume lógico
Habilite a função de encaminhamento de pacotes e modifique os parâmetros do kernel
O módulo br_netfilter é usado para encaminhar o tráfego de ponte para a cadeia iptables. O parâmetro do kernel br_netfilter precisa habilitar o encaminhamento.
modprobe br_netfilter #Carrega módulos no kernel
Configurável - Reinicie a máquina e carregue automaticamente o módulo
Crie um novo arquivo rc.sysinit em /etc/ gato /etc/rc.sysinit #!/bin/bash para arquivo em /etc/sysconfig/modules/*.modules ; [ -x $ arquivo ] && $ arquivo feito Crie um novo arquivo no diretório /etc/sysconfig/modules/ como segue cat /etc/sysconfig/modules/br_netfilter.modules modprobe br_netfilter Adicionar permissões chmod 755 /etc/sysconfig/modules/br_netfilter.modules O módulo também será carregado automaticamente quando a máquina for reiniciada. [root@localhost ~]#lsmod |grep br_netfilter br_netfilter 22209 0 ponte 136173 1 br_netfilter
#Escrita não interativa gato > /etc/sysctl.d/docker.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables=1 net.ipv4.ip_forward = 1 EOF
#Tornar os parâmetros eficazes sysctl -p /etc/sysctl.d/docker.conf
Configuração do acelerador de imagem
/etc/docker/daemon.json
{ "espelhos de registro":["https://y8y6vosv.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn" ,"https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"] }
A configuração entra em vigor
sudo systemctl daemon-reload sudo systemctl reiniciar janela de encaixe
docker três elementos
Espelho
docker run --help #Ver todos os parâmetros de opções
Semelhante à imagem ISO em uma máquina virtual, é um modelo somente leitura para o mecanismo Docker que contém um sistema de arquivos.
Identificador exclusivo: ID da imagem
Comandos de espelhamento
imagens docker Ver lista de imagens locais
imagem de pesquisa do nome da imagem de pesquisa do docker
docker pull nome da imagem: extrai a imagem mais recente docker pull image name: Tag extrai a imagem da versão especificada
docker run nome da imagem: execute a imagem nome da imagem de execução do docker: Tag
-a, --attach=[] Anexar a stdin, stdout ou stderr. -c, --cpu-shares=0 # Define o peso de uso da CPU –cidfile="" # Grava o ID do contêiner no arquivo especificado –cpuset="" # ligação da CPU -d, --detach=false # Executa o contêiner em segundo plano –dns=[] # Definir DNS –dns-search=[] # Definir pesquisa de domínio DNS -e, --env=[] # Define variáveis de ambiente –entrypoint="" Substituir o ponto de entrada padrão da imagem #Substituir o ponto de entrada padrão da imagem –env-file=[] # Lê os valores das variáveis do arquivo especificado –expose=[] # Especifique a porta de serviço externa -h, --hostname="" # Defina o nome do host do contêiner -i, --interactive=false # Mantém a saída padrão aberta mesmo se não estiver anexada –link=[] # Adiciona um link para outro contêiner –lxc-conf=[] # Adicionar opções lxc personalizadas --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1" -m, --memory="" # Limite de memória –name="" # Define o nome do contêiner –net="bridge" #Definir modo de rede do contêiner ***** ‘bridge’: cria uma nova pilha de rede para o contêiner na docker bridge ***** ‘none’: nenhuma rede para este contêiner ***** ‘container:<name|id>’: reutiliza outra pilha de rede de contêiner ***** ‘host’: use a pilha de rede host dentro do contêiner. ***** Nota: o modo host dá ao contêiner acesso total aos serviços do sistema local, como D-bus e, portanto, é considerado inseguro. -P, --publish-all=false # Mapeia automaticamente a porta para serviços externos fornecidos pelo contêiner -p, --publish=[] # Especifique o mapeamento da porta ***** formato: ip:hostPort:containerPort | ip::containerPort | ***** (use ‘docker port’ para ver o mapeamento real) –privileged=false # Fornece mais permissões ao contêiner –rm=false # Remoção automática se a saída do contêiner entrar em conflito com a opção -d –sig-proxy=true Proxifica os sinais recebidos para o processo (mesmo no modo não-tty, o SIGCHLD não é proxy). # O proxy recebeu sinais para o processo (mesmo no modo não-tty). SIGCHLD não proxy -t, --tty=false # Aloca pseudo terminal -u, --user="" #Especifique o uid ou nome de usuário do usuário que executa o contêiner -v, --volume=[] Bind monta um volume (por exemplo, do host: -v /host:/container, do docker: -v /container) # Monta o volume –volumes-from=[] # Monta volumes do contêiner especificado- -w, --workdir="" #Especifique o diretório de trabalho do contêiner
Todos os parâmetros do docker run
docker save image name/image ID -o path/name Salve a imagem como um arquivo tar para facilitar a transferência e o armazenamento docker load -i carrega o arquivo de volta em uma imagem
docker tag image1:v1 image1:v2 Marque a imagem para iteração de versão e diferenciação de imagem.
docker rmi -f nome da imagem/ID da imagem exclui uma imagem docker rmi -f nome da imagem/ID da imagem nome da imagem/ID da imagem nome da imagem/ID da imagem #Exclua várias imagens. docker rmi -f $(docker images -aq) #Excluir todas as imagens -a significa exibir todas, -q significa apenas exibir ID docker image rm nome da imagem/ID da imagem excluir a imagem à força
recipiente
Contêineres são instâncias de aplicativos criadas por imagens. O mecanismo Docker usa contêineres para executar e isolar cada aplicativo. Cada contêiner é isolado um do outro e não afeta um ao outro.
docker ps veja a lista de contêineres em execução
docker ps -a Visualize todos os contêineres - incluindo os em execução e os parados
docker run -it -d --name Alias a ser usado Nome da imagem: Tag /bin/bash # -significa inicialização interativa com o contêiner -d significa que o contêiner pode ser executado em segundo plano (daemon em execução) --name é o nome dado ao contêiner a ser executado /bin/bash caminho interativo
docker stop nome da imagem/ID da imagem interrompe o contêiner
docker start nome da imagem/ID da imagem inicia o contêiner parado
docker exec -it nome da imagem/ID da imagem /bin/bash insira o contêiner
docker rm -f nome da imagem/ID da imagem excluir contêiner
armazém
Introdução ao Porto
O desenvolvimento e a operação de aplicativos contêineres Docker são inseparáveis do gerenciamento confiável de imagens. Embora o Docker forneça oficialmente armazéns de imagens públicas, também é necessário implantar o Registro em nosso ambiente privado do ponto de vista da segurança e da eficiência. Harbor é um projeto de gerenciamento de registro Docker de nível empresarial de código aberto da VMware. Ele inclui funções como gerenciamento de permissão (RBAC), LDAP, auditoria de log, interface de gerenciamento, autorregistro, replicação de imagem e suporte chinês. Endereço do site oficial: https://github.com/goharbor/harbor
docker imagem privada armazém porto
Certificado de autoassinatura para Harbor
Instalar o Porto
site oficial do docker hub https://hub.docker.com/
arquivo docker
Conceito: Dockerfile é um arquivo de texto usado para construir uma imagem. O conteúdo do texto contém as instruções e instruções necessárias para construir a imagem.
arquivo docker
Processo de construção
Execute um contêiner a partir de uma imagem base Execute uma instrução para fazer alterações no contêiner Execute uma operação semelhante ao docker commit para enviar uma nova camada de imagem Em seguida, execute um novo contêiner com base na imagem que acabou de enviar Execute a próxima instrução no dockerfile até que todas as instruções sejam executadas
Padrões de escrita
A imagem FROM base deve estar disponível para download
MAINTAINER especifica as informações do autor da imagem
RUN especifica o comando a ser executado durante o processo atual de construção da imagem (Shell, modo exec)
EXPOSE lembra ao usuário qual porta o contêiner expõe
CMD: Especifique o programa a ser executado por padrão para o contêiner iniciado. Quando a execução do programa terminar, o contêiner também será encerrado. Semelhante à instrução RUN, ela é usada para executar programas, mas eles são executados em momentos diferentes: 1. O CMD é executado quando o docker é executado. 2. RUN é executado quando docker build constrói a imagem.
ENTERYPOINT Semelhante à instrução CMD, mas não será substituída por instruções especificadas pelos parâmetros de linha de comando do docker run, e esses parâmetros de linha de comando serão usados como parâmetros para o programa especificado pela instrução ENTRYPOINT. Se você precisar especificar novamente ENTERYPOINT, use a opção --entrypoint, que substituirá o programa especificado pela diretiva entrypoint.
COPY # Copie o comando, copie arquivos ou diretórios do diretório de contexto para o caminho especificado no contêiner.
A instrução ADD # tem o mesmo formato que COPY ADD inclui uma função de descompactação semelhante ao tar. Se você simplesmente copiar arquivos, o dockerfile recomenda COPY.
VOLUME #Define o volume de dados anônimos. Se você esquecer de montar o volume de dados ao iniciar o contêiner, ele será automaticamente montado no volume anônimo. 1. Evite a perda de dados importantes devido à reinicialização do contêiner, que é muito fatal. 2. Evite que o recipiente cresça.
WORKDIR #Especifique o diretório de trabalho. O diretório de trabalho especificado com WORKDIR existirá em cada camada da imagem construída. (O diretório de trabalho especificado por WORKDIR deve ser criado antecipadamente)
ENV #Definir variáveis de ambiente
USER # é usado para especificar o usuário e o grupo de usuários para executar comandos subsequentes. Isso serve apenas para alternar o usuário para executar comandos subsequentes (o usuário e o grupo de usuários já devem existir antecipadamente).
ONBUILD #Usado para atrasar a execução de comandos de construção
LABEL #Usado para adicionar alguns metadados à imagem na forma de pares de valores-chave
HEALTHCHECK # é usado para especificar um programa ou instrução para monitorar o status de execução do serviço de contêiner do docker.
ARG Parâmetros de construção, iguais a ENV. Mas o escopo é diferente. As variáveis de ambiente definidas pelo ARG são válidas apenas dentro do Dockerfile, ou seja, são válidas apenas durante o processo de construção do docker. Esta variável de ambiente não existe na imagem construída.
Contêiner Docker
Gerenciamento de dados de contêiner Docker
volume de dados
conceito
Um volume de dados é um diretório especialmente projetado que pode ignorar o Union File System (UFS) e fornecer acesso a um ou mais contêineres. O objetivo do design do volume de dados é armazenar dados permanentemente. contêiner, portanto, o Docker não excluirá seu volume de dados montado quando o contêiner for excluído, nem haverá um mecanismo de coleta de lixo semelhante para processar o volume de dados referenciado pelo contêiner. O mesmo volume de dados só pode suportar acesso por vários contêineres.
Características
1. O volume de dados é inicializado quando o contêiner é iniciado. Se a imagem usada pelo contêiner contiver dados no ponto de montagem, os dados serão copiados para o volume de dados recém-inicializado. 2. Os volumes de dados podem ser compartilhados e reutilizados entre contêineres 3. O conteúdo do volume de dados pode ser modificado diretamente 4. Alterações no volume de dados não atualizarão o espelho da imagem 5. O volume sempre existirá, mesmo que o contêiner que monta o volume de dados tenha sido excluído
usar
Adicione um volume de dados ao contêiner
Adicione um volume de dados ao contêiner docker run -v /datavolume:/data -it centos /bin/bash
Adicione permissões de acesso a volumes de dados docker run --name volume1 -v ~/datavolume1:/data:ro -itd centos /bin/bash
Use dockerfile para construir uma imagem contendo volumes de dados
DE centos VOLUME ["/datavolume3","/datavolume6"] CMD /bin/bash Use o seguinte para construir a imagem docker build -t="volume" . Iniciar contêiner docker run --name volume-dubble -it volume Você verá que existem dois diretórios neste contêiner, /datavolume3 e /datavolume6
Contêiner de volume de dados do Docker
conceito
O contêiner nomeado monta o volume de dados e outros contêineres realizam o compartilhamento de dados montando esse contêiner. O contêiner que monta o volume de dados é chamado de contêiner de volume de dados. Como montar um contêiner de volume de dados docker run --volumes-from [nome do contêiner]
Backup e restauração de volumes de dados do Docker
Backup e restauração de volumes de dados do Docker
Método de backup de dados: docker run --volumes-from [nome do contêiner] -v $(pwd):/backup centos tar czvf /backup/backup.tar [volume de dados do contêiner]
Método de restauração de dados: docker run --volumes-from [nome do contêiner] -v $(pwd):/backup centos tar xzvf /backup/backup.tar.gz [volume de dados do contêiner]
interconexão de contêiner docker
Noções básicas de rede de contêineres docker
docker0: Ao instalar o docker, uma ponte virtual para o docker0 será gerada. Cada vez que um contêiner docker é executado, um par de dispositivos veth é gerado. Essa interface veth possui uma interface no contêiner e uma interface na máquina física.
Instale ferramentas de gerenciamento de ponte: yum install bridge-utils -y
Interconexão de contêiner Docker
docker run --name test2 -itd --link=test1:webtest inter-imagem /bin/bash Faça login no contêiner test2 e execute ping no webtest do alias de ip do contêiner test1. Ele pode receber ping mesmo se o ip do contêiner test1 tiver sido alterado.
Modo de rede do contêiner Docker
Docker tem os seguintes 4 modos de rede
nenhum modo Isso significa que o contêiner criado não possui endereço de rede, apenas o endereço local lo.
modo contêiner #Compartilhe a rede com o contêiner nenhum existente
Modo Ponte Quando a ponte é selecionada por padrão, um endereço será obtido através do DHCP após o contêiner ser iniciado.
modo host O modo host da rede Docker refere-se a uma rede que compartilha a máquina host
cota de recursos do Docker
docker controla a CPU
-c --cpu-share
Especificar o valor de compartilhamento de CPU usado pelo contêiner ao criá-lo é apenas um valor ponderado flexível.
--cpuset-cpus #core controle central
--cpuset-mems#
Válido para servidores com vários nós de memória
Software de teste de estresse: Estresse
memória de controle do docker
-m, --mem=""
E/S de controle do docker
--device-write-bps value #Limite a velocidade de gravação deste dispositivo
--device-read-bps value # Limita a velocidade de leitura deste dispositivo
Docker libera recursos automaticamente
--rm valor #Depois que o contêiner terminar de ser executado, ele será excluído automaticamente após o tempo especificado.
Como definir o título do Evernote?