introdução docker
Site oficial www.docker.com
github https://github.com/docker/docker.github.io
O mecanismo de contêiner de código aberto permite que os desenvolvedores empacotem aplicativos e bibliotecas dependentes e, em seguida, publiquem-nos em qualquer distribuição Linux popular, o que é muito conveniente para portar
Escrito em linguagem go, lançado com base no protocolo apache2.0
Baseado no kernel do Linux, se você deseja rodar sob win, você precisa usar uma vm (máquina virtual) para alcançar
Desde 2013, tem se desenvolvido rapidamente nos últimos anos
A partir de 1.13x, a versão do docker é dividida em versão comunitária ce e versão empresarial ee, e com base na linha do tempo do ano e mês, a versão estável mais recente é 17.09. Referência http://blog.csdn.net/chenhaifeng2016/article/details/68062414
Comparação de Docker e virtualização tradicional
Vantagens do Docker
A inicialização é muito rápida, realizada em segundos
Alta utilização de recursos, um servidor de alta configuração pode executar milhares de contêineres docker
Entrega e implantação mais rápidas, uma vez criado e configurado, pode ser executado em qualquer lugar
A virtualização no nível do kernel não requer suporte adicional do hipevisor e terá maior desempenho e eficiência
Fácil de migrar, sem forte dependência de plataforma
Conceitos básicos do Docker
O espelho é um modelo somente leitura, semelhante ao arquivo iso usado no sistema de instalação. Usamos o espelhamento para concluir a implantação de vários aplicativos.
Container , a imagem é semelhante ao sistema operacional e o container é semelhante à própria máquina virtual. Ele pode ser iniciado, iniciado, interrompido, excluído e outras operações, e cada contêiner é isolado um do outro.
Armazém , local de armazenamento de imagens em espelho, os armazéns estão divididos em armazéns públicos e armazéns privados. O maior armazém público é o Docker hub (hub.docker.com), armazém público doméstico (dockerpool.com)
Instalação do Docker
etapas de instalação
método um:
1. Baixe a fonte yum de um repo (fornecida pelo oficial)
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
2. Instale a edição da comunidade:
yum install -y docker-ce
Método dois:
(A velocidade é lenta, você também pode baixar o pacote rpm diretamente)
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
Depois de baixar, enviar para o Linux, você também precisa instalar com yum, você pode resolver automaticamente as dependências, especifique por si
yum install -y docker-ce-xxxx.rpm
3. Inicie o docker:
systemctl start docker
Gerenciamento de imagens Docker
Baixe a imagem : docker pull centos
[root @ awei-01 ~] # docker pull centos Usando a tag padrão: mais recente mais recente: puxando da biblioteca / centos 7a0437f04f83: Extração completa Resumo: sha256: 5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1 Status: Download da imagem mais recente para centos: mais recente docker.io/library/centos:latest
Configure o acelerador docker (consulte http://blog.csdn.net/xlemonok/article/details/71403534 )
vi /etc/docker/daemon.json//Adicione o seguinte conteúdo
{ "Registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"] }
Observação: este url é o endereço do acelerador e os alunos precisam se inscrever no Alibaba Cloud por conta própria
Depois de configurar o acelerador, reinicie o serviço docker, docker pull centos novamente será muito mais rápido
Veja a imagem local : imagens docker
[root @ awei-01 ~] # imagens docker TAG DE REPOSITÓRIO ID DE IMAGEM TAMANHO CRIADO centos mais recente 300e315adb2f 4 semanas atrás 209 MB
Espelho de pesquisa : docker search xxx // Espelho de pesquisa, onde xxx é uma palavra-chave
Tag do espelho : tag do docker Tag do nome do espelho // Marque o espelho TAG é sua tag
[root @ localhost ~] # docker tag centos6 centos6: v1 [root @ localhost ~] # imagens docker TAG DE REPOSITÓRIO ID DE IMAGEM TAMANHO CRIADO centos6 mais recente fa529b27048c 28 horas atrás 512MB centos6 v1 fa529b27048c 28 horas atrás 512MB registro mais recente 678dfa38fcfa 3 semanas atrás 26,2 MB
A imagem começa como um contêiner : docker run -itd centos bash
[root @ awei-01 ~] # docker run -itd centos bash bce3d5c8d148fab8cebf15ea288f799b92cdae4541e9c604efab7e52ac7eb1a3
-i significa abrir a entrada padrão do contêiner, -t significa atribuir um pseudo terminal, -d significa iniciar no plano de fundo , colocar -i -t -d na frente do nome da imagem centos Nota: Depois que a imagem for iniciada, ela se tornará um contêiner
Visualizar contêineres em execução : docker ps // Depois de adicionar a opção -a, você pode visualizar todos os contêineres, incluindo aqueles que não estão em execução
[root @ awei-01 ~] # docker ps COMANDO DE IMAGEM DE ID DE CONTÊINER CRIADO NOMES DE PORTOS DE STATUS bce3d5c8d148 centos "/ bin / bash" 47 segundos atrás Up 46 segundos angry_black
Exclua o espelho especificado : docker rmi centos
O último parâmetro pode ser uma tag, se for uma tag, a tag é realmente excluída. Quando o último parâmetro é o ID do espelho, todo o espelho será completamente excluído e todas as tags serão excluídas ao mesmo tempo
[root @ awei-01 ~] # docker rmi 300e315adb2f Sem etiqueta: centos: mais recente Sem etiqueta: centos @ sha256: 5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1 Excluído: sha256: 300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55 Excluído: sha256: 2653d992f4ef2bfd27f94db643815aa567240c37732cae1405ad1c1309ee9859
Fechar o contêiner : o ID do contêiner iniciado por docker stop
ID do contêiner iniciado por docker rm -f
Docker cria imagens por meio de contêineres
Depois que a execução do docker inicia o contêiner, você pode entrar no contêiner por meio do seguinte comando
Digite o contêiner : docker exec -it xxxxx bash // onde xxxxx é o id do contêiner, este id pode ser visto com docker ps, o último bash é o comando que queremos executar após entrar no contêiner, para que possamos abrir um terminal
[root @ awei-01 ~] # docker exec -it bce3d5c8d148 bash [root @ bce3d5c8d148 /] # ls bin dev etc home lib lib64 perdido + encontrado mídia mnt opt proc root executar sbin srv sys tmp usr var [root @ bce3d5c8d148 /] #
Criar imagem : docker commit -m "mudança / descrição" -a "informações do autor" container_id novo nome da imagem // container_id obtido por meio de docker ps -a
Por exemplo:
Entre no contêiner, fazemos algumas mudanças, como instalar algo e, em seguida, criamos uma nova imagem para esse contêiner, executamos yum install -y net-tools no contêiner e ctrl d para sair do contêiner
Crie um espelho de mudança: docker commit -m "install net-tools" -a "Aming" 2c74d574293f centos_with_nettool Este comando é um pouco como um envio de svn, -m adiciona algumas informações de mudança, -a especifica as informações relacionadas ao autor 2c74d como o id do contêiner, O nome do novo espelho
Docker usa modelos para criar imagens
Primeiro, faça o download de um modelo
wget http://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz// A velocidade de download não é rápida, baixei um template centos6 centos-6-x86-minimal.tar.gz
O comando para importar a imagem é:
cat centos-6-x86-minimal.tar.gz | docker import - centos6
imagens do dock ver a imagem importada
[root @ awei-01 ~] # cat centos-6-x86-minimal.tar.gz | docker import - centos6 sha256: 730dac82b660ad9037c2f3cad6b6f6512424ea5431a05de5a20a4704bd446841 [root @ awei-01 ~] # imagens docker TAG DE REPOSITÓRIO ID DE IMAGEM TAMANHO CRIADO centos6 mais recente 730dac82b660 58 segundos atrás 512 MB centos mais recente 300e315adb2f 4 semanas atrás 209 MB ubuntu mais recente f643c72bc252 6 semanas atrás 72,9 MB
Exporte a imagem existente como um arquivo :
docker save -o export name nome da imagem
[root @ awei-01 ~] # docker save -o centos.tar.gz centos [root @ awei-01 ~] # ls 1.php centos-6-x86-minimal.tar.gz data.txt rpmbuild anaconda-ks.cfg centos.tar.gz memcache-2.2.3.tgz yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
Use este arquivo para restaurar o espelho local :
docker load --input aming-centos.tar 或者 docker load <aming-centos.tar
[root @ awei-01 ~] # docker load --input centos.tar.gz 2653d992f4ef: Carregando camada [======================================================= =====>] 216,5 MB / 216,5 MB Imagem carregada: centos: mais recente
docker push image_name // Você pode carregar sua própria imagem para o site oficial do dockerhub, mas a premissa é que você precisa registrar um usuário primeiro e, em seguida, estudá-lo se precisar depois