Um fundo do Docker
1 modelo de operação de serviço em nuvem
A IaaS (infraestrutura como serviço): infraestrutura operacional, como o servidor Alibaba Cloud (apenas sistema operacional instalado)
PaaS (Platform as a Service): plataformas operacionais, como a plataforma de desenvolvimento MySQL (plataforma pronta para instalação instalada no Linux) e a plataforma de desenvolvimento redis.
A SaaS (software como serviço): software operacional, como o sistema OA da empresa (software OA implantado em um servidor remoto)
2 O que é o Docker
O Docker é uma tecnologia de contêiner virtualizado. Por meio da tecnologia de contêiner de virtualização do Docker, os recursos da máquina física podem ser usados de maneira mais razoável e eficaz, e uma máquina física pode ser virtualizada em muitos "computadores virtuais" que possuem um sistema operacional completo e são independentes um do outro.
Virtualização (Virtualização)
Uma tecnologia de gerenciamento de recursos consiste em abstrair e converter vários recursos físicos do computador, como servidores, redes, memória e armazenamento etc., para quebrar os obstáculos inseparáveis entre as estruturas físicas, para que os usuários possam comparar o grupo original. Uma maneira melhor de aplicar esses recursos. A nova parte virtual desses recursos não é limitada pela maneira como os recursos existentes são configurados, geográfica ou fisicamente. Geralmente chamados de recursos de virtualização incluem poder de computação e armazenamento de dados
No ambiente de produção real, a tecnologia de virtualização é usada principalmente para resolver a reestruturação e reutilização da sobrecapacidade de hardware físico de alto desempenho e a capacidade de hardware antigo é muito baixa, transparente o hardware físico subjacente, de modo a maximizar o uso de hardware físico
Classificação da tecnologia de virtualização
Virtualização de software, virtualização de hardware, virtualização de memória, virtualização de rede, virtualização de desktop, virtualização de serviço, máquina virtual
Docker é uma implementação baseada na tecnologia de virtualização de sistemas operacionais
3 VM vs Docker
Velocidade de inicialização rápida O sistema operacional de inicialização do contêiner Docker pode ser concluído em segundos, mas o VMware atingiu o nível de minuto
Baixo consumo de recursos do sistema Um servidor Linux pode executar milhares de contêineres do Docker, enquanto o VMware pode executar apenas cerca de 10 ao mesmo tempo
Migração e expansão mais fáceis Como os contêineres do Docker ocupam menos espaço em disco do que o VMware, no caso em que vários conjuntos de ambientes de software precisam ser criados, é mais rápido e conveniente migrar os contêineres do Docker instalados. E os contêineres do Docker podem ser executados em praticamente qualquer plataforma, incluindo máquinas virtuais, máquinas físicas, nuvens públicas, nuvens privadas, computadores pessoais etc. Essa compatibilidade permite que os usuários migrem um aplicativo de uma plataforma para outra
Dois conceitos principais do Docker
O Docker contém quatro conceitos básicos:
imagem
Container
Centro de Registro do Armazém (Registro)
Posit Repositório
1 espelho
A imagem do Docker (imagem) é um modelo somente leitura da imagem do Docker que pode ser usado para criar contêineres do Docker
O relacionamento entre a imagem do Docker e o contêiner do Docker é semelhante ao relacionamento entre classe e objeto em java.
O Docker fornece um mecanismo muito simples para criar ou atualizar uma imagem existente.Os usuários podem até baixar uma imagem já preparada diretamente de outras pessoas e usá-la diretamente.
2 recipientes
O Docker usa contêineres para executar aplicativos, que estão executando instâncias criadas a partir de imagens. Pode ser iniciado, iniciado, parado e excluído. Cada contêiner é uma plataforma isolada que garante segurança
3 Registro e Repositório
O Registry é um local para armazenar arquivos de imagem centralmente, e o repositório é para classificar e gerenciar as imagens nele.
Haverá vários Repositórios em um Registro e várias
imagens com tags diferentes em um Repositório.
O registro é dividido em duas formas: pública e privada.
O maior registro público é o Docker Hub, que armazena um grande número de imagens para os usuários baixarem e usarem.
O registro público doméstico inclui o Netease Cloud, DaoCloud, AliCloud etc., que podem fornecer acesso mais estável e rápido
Os usuários podem criar um registro privado localmente
Depois que o usuário cria sua própria imagem, ele pode usar o comando push para carregá-la no registro público ou privado, para que na próxima vez em que use a imagem em outra máquina, ele só precise retirá-la do registro e executá-la.
Instalação de três Docker
1 O sistema operacional padrão oficial está instalado no Ubuntu
Você pode desinstalar o yum -y remove docker antes de
instalar
Instalação:
yum install -y docker
Início:
systemctl start docker
#systemctl start docker.service
Listar espelhos
imagens do docker
Repositório: o nome do armazém em que o espelho está localizado
Tag: a versão do espelho
ID da imagem: o ID do espelho
Criado: Hora de criação da imagem
Tamanho: Tamanho da imagem
Espelho de pesquisa
nome da imagem de pesquisa do docker
AME NOME: nome do armazém
DESCRIÇÃO: descrição do espelho
STARS: avaliação do usuário, refletindo a popularidade de um espelho
OFICIAL: se é oficial AUTOMATED: construção automática, indicando que o espelho é criado pelo processo de construção automática do Docker Hub
2 Puxe a imagem
O Docker Hub ( https://hub.docker.com/ ) é o registro público padrão do docker, mas a desvantagem é que o download doméstico será mais lento
Pull from ustc
Edite o arquivo na máquina host (o centos7 não suporta o comando vim, mas suporta o comando vi): vi /etc/docker/daemon.json
Aderir
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
Por fim, você precisa reiniciar o serviço docker
janela de encaixe systemctl restart
docker pull centos: 7
3 Excluir espelho
Excluir a imagem especificada
docker rmi repository: tag
docker rmi imageID
Excluir todos os espelhos
docker rmi $ (imagens do docker -q)
Ao excluir, se os IDs das imagens forem os mesmos, você precisará excluí-los em uma determinada ordem, porque há uma associação entre as imagens (referência).
4 Importar e exportar imagens (migração de imagens)
Exporte a imagem:
docker salvar repositório: tag / imageId> /root/xx.tar.gz
janela de encaixe save -o mynginx.tar mynginx
-o arquivo de saída
Importar imagem:
carga do docker </root/xx.tar.gz
docker load -i mynginx.tar
-i Insira o arquivo e verifique a imagem novamente após a execução. Você pode ver que a imagem foi restaurada
Três contêineres Docker
1 Crie e execute o contêiner
Comando Criar Contêiner: Docker Run
Descrição dos parâmetros comumente usados para criar contêineres:
I -i: significa executar o contêiner
-t: significa que o contêiner entrará em sua linha de comando após o início. Após adicionar esses dois parâmetros, a criação do contêiner pode efetuar login. Ou seja, um pseudo terminal é atribuído.
Name --name: Nomeie o contêiner criado.
V -v: indica o relacionamento de mapeamento de diretório (o primeiro é o diretório do host, o último é mapeado para o diretório no host), você pode usar vários -v para fazer o mapeamento de vários diretórios ou arquivos. Nota: É melhor fazer o mapeamento de diretórios, fazer alterações na máquina host e compartilhar no contêiner.
D -d: adicione o parâmetro -d após a execução, um contêiner daemon será criado para ser executado em segundo plano (para que o contêiner não seja automaticamente conectado após a criação do contêiner, se apenas dois parâmetros -i -t forem adicionados, ele será criado automaticamente após a criação No recipiente).
P -p: indica o mapeamento da porta, a primeira é a porta do host e a última é a porta mapeada no contêiner. Você pode usar -p múltiplo para mapeamento de várias portas
Execute o contêiner interativamente
docker run -i -t --name repositório de nomes de contêiner: tag / bin / bash
docker run -it --name nome do contêiner imageID / bin / bash
Execute o contêiner como um daemon:
docker run -di --name nome do contêiner repositório: tag
docker run -di --name nome do contêiner imageID
Após criar e inserir o contêiner durante a execução, se o comando exit for usado para sair do contêiner, o contêiner será interrompido. Insira o contêiner novamente, primeiro use start para iniciar o contêiner, use o comando exec / attach para entrar no contêiner
2 Inicie o contêiner
docker iniciar nome do contêiner ou ID do contêiner
3 Digite o container
O comando para inserir o contêiner em execução é o seguinte:
docker exec -it nome do contêiner ou ID do contêiner / bin / bash
docker anexar nome ou ID do contêiner
Após anexar ao contêiner, se você usar exit para sair do contêiner, o contêiner será interrompido
Depois que o exec entra no contêiner, use exit para sair do contêiner, o contêiner ainda está em execução.
4 Exibir contêiner
docker ps: visualizar contêineres em execução
docker ps -a: exibe os contêineres executados historicamente
docker ps -l: exibe os contêineres executados recentemente
5 Pare o recipiente
docker stop nome do contêiner ou ID do contêiner
6 Excluir contêiner
Exclua o contêiner especificado: docker rm nome do contêiner ou ID do contêiner
Excluir todos os contêineres: docker rm 'docker ps -a -q'
7 Copiar arquivos
docker cp arquivo de origem texto de destino
docker cp /root/boot.war my-centos: / usr / local /
/root/boot.war é o caminho da máquina host
my-centos é o nome do contêiner
/ usr / local / é o caminho dentro do contêiner.O
arquivo de origem pode ser a máquina host ou o arquivo no contêiner. Da mesma forma, o arquivo de destino pode ser o contêiner ou a máquina host
Quatro aplicativos Docker
docker pull mysql: 5.6
imagens do docker
Criar contêiner mysql
docker run -di --name exp_mysql -p 33306: 3306 -e MYSQL_ROOT_PASSWORD = root mysql: 5.6
-p significa mapeamento de porta, o formato é porta mapeada pelo host: porta de execução do contêiner
-e significa adicionar a variável de ambiente MYSQL_ROOT_PASSWORD é a senha de login do usuário root
Entre no container MySQL e efetue login no MySQL
docker exec -it exp_mysql / bin / bash
Login mysql
mysql -u raiz -p
Login remoto no mysql
Exibir endereço IP do contêiner
janela de encaixe inspecione exp_mysql
Cinco espelhos artesanais
Requisitos: faça uma imagem do tomcat
1 Faça o download da janela de encaixe da imagem base (centos7) pull centos: 7
2 Instale o jdk de 64 bits (nota: o jdk deve ser igual ao número de sistemas operacionais)
vi / etc / profile
exportar JAVA_HOME = / opt / jdk exportar PATH = $ JAVA_HOME / bin: $ PATH
fonte / etc / profile
3 Instale o tomcat
4 Gere uma nova imagem
docker confirmar o nome do contêiner ou o ID do contêiner novo nome de espelho