Docker usa o catálogo de séries relacionadas ao tutorial
índice
A relação entre imagem e contêiner
Em segundo lugar, liste as imagens do docker
fonte de espelho ustc (recomendado)
2. Crie um contêiner interativo
1. O que é uma imagem docker
Introdução ao espelho Docker
O sistema operacional é dividido em um kernel e um espaço do usuário.Para Linux, depois que o kernel é iniciado, o sistema de arquivos raiz será montado para fornecer suporte de espaço do usuário para ele. A imagem Docker (imagem) é equivalente a um sistema de arquivos raiz.
A imagem Docker é um sistema de arquivos especial. Além de fornecer os programas, bibliotecas, recursos, configuração e outros arquivos exigidos pelo tempo de execução do contêiner, ela também contém alguns parâmetros de configuração preparados para o tempo de execução (como volumes anônimos, variáveis de ambiente, usuários, etc. .)). A imagem não contém nenhum dado dinâmico e seu conteúdo não será alterado após sua construção.
A imagem docker é armazenada por padrão em: / var / lib / docker / diretório
A relação entre imagem e contêiner
A relação entre imagem (imagem) e contêiner (contêiner) é como a classe e instância na programação orientada a objetos. A imagem é uma definição estática e o contêiner é a entidade da imagem em tempo de execução. Os contêineres podem ser criados, iniciados, parados, excluídos, suspensos, etc.
A essência de um contêiner é um processo, mas ao contrário de um processo que é executado diretamente no host, um processo de contêiner é executado em seu próprio namespace independente. Portanto, o contêiner pode ter seu próprio sistema de arquivos raiz, sua própria configuração de rede, seu próprio espaço de processo e até mesmo seu próprio espaço de ID de usuário. O processo no contêiner é executado em um ambiente isolado e, quando usado, é como se estivesse operando em um sistema host independente. Esse recurso torna os aplicativos encapsulados em contêiner mais seguros do que a execução direta no host.
Conforme mencionado anteriormente, o espelhamento usa armazenamento hierárquico e o mesmo é verdadeiro para contêineres. Quando cada contêiner está em execução, a imagem é a camada de base e uma camada de armazenamento do contêiner atual é criada nela. A camada de armazenamento preparada para leitura e gravação do contêiner durante o tempo de execução pode ser chamada de camada de armazenamento do contêiner.
O ciclo de vida da camada de armazenamento do contêiner é o mesmo do contêiner. Quando o contêiner morre, a camada de armazenamento do contêiner também morre. Portanto, todas as informações armazenadas na camada de armazenamento do contêiner serão perdidas quando o contêiner for excluído.
De acordo com os requisitos das práticas recomendadas do Docker, o contêiner não deve gravar nenhum dado em sua camada de armazenamento, e a camada de armazenamento do contêiner deve permanecer sem estado. Todas as operações de gravação de arquivo devem usar volumes de dados (volume) ou vincular o diretório do host. Ler e gravar nesses locais irá ignorar a camada de armazenamento e ler e gravar diretamente no host (ou armazenamento de rede). Seu desempenho e estabilidade Sexo superior.
O ciclo de vida do volume de dados é independente do contêiner, e o contêiner morre e o volume de dados não morre. Portanto, depois que o volume de dados for usado, os dados não serão perdidos depois que o contêiner for excluído ou executado novamente.
Em segundo lugar, liste as imagens do docker
Inicie o docker primeiro
systemctl restart docker.service
Listar imagens do docker
docker images
Tres, puxe o espelho
Puxe do hub docker
Ao extrair imagens do Docker Hub, os seguintes problemas costumam ocorrer:
solução:
O Docker extrai a imagem do hub do docker porque ela é obtida do exterior, o que é mais lento. Você pode obter imagens de espelho do país configurando a fonte de espelho doméstica para melhorar a velocidade de extração.
fonte de espelho ustc (recomendado)
Configuração
cd /etc/docker
vi daemon.json
复制保存
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
Reinicie o serviço docker
systemctl restart docker.service
Puxar espelho centos
docker pull centos
Depois que o pull for bem-sucedido, verifique
docker images
Como usar espelhos de terceiros
https://hub.docker.com/search?type=image
O documento contém instruções detalhadas sobre como usá-lo
Quarto, encontre o espelho
docker search tomcat
NOME: Nome do espelho
DESCRIÇÃO: Descrição do espelho
STARS: avaliação do usuário, quanto maior o valor, mais popular
OFICIAL: é oficial
AUTOMATIZADO: Construir automaticamente, o que significa que a imagem foi criada pelo processo de construção automática do hub do docker;
Cinco, construa um espelho
Instale o tomcat
1. Instale primeiro o centos
Listar imagens do docker
docker images
Se você já o tem, não precisa instalá-lo novamente. Se não tiver, instale o centos
docker pull centos
2. Crie um contêiner interativo
docker run -i -t --name=mycentos centos
Observação:
O que esses dois parâmetros (-i, -t) significam
Opções | Significar |
---|---|
-eu | Execute o contêiner no modo interativo, geralmente usado com -t; |
-t | Realoque um terminal de pseudo entrada para o contêiner, geralmente usado ao mesmo tempo que -i; |
Para dentro do contêiner
Instale o JDK
yum install java-1.8.0-openjdk* -y
Instalação bem sucedida
Definir variáveis de ambiente
Após o centos8 instalar o Java através do yum, verifique o caminho de instalação do Java
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java
vi /etc/profile
Cole o seguinte conteúdo na parte inferior do arquivo e salve
Nota: Após JAVA_HOME, é o seu caminho de instalação real!
export JAVA_HOME=/usr/local/jdk-xxxx
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
生效命令:source /etc/profile
测试命令:java -version
Copie o tomcat para o servidor
Pode ser carregado para o servidor via SCP
Retorne ao servidor docker, copie o tomcat para o contêiner
docker cp apache-tomcat-8.5.47.zip mycentos:/root/
Entre no container
docker attach mycentos
Saia do contêiner:
exit
Encontre o recipiente
docker ps -a
Erro:
You cannot attach to a stopped container, start it first
Solução: inicie o contêiner
Veja o tomcat no contêiner
Descompacte o zip
Instale descompactar primeiro
mover para
mv apache-tomcat-8.5.47 /usr/local/tomcat8
O contêiner é enviado como uma nova imagem
Saia do contêiner primeiro
exit
O contêiner é enviado como uma nova imagem
docker commit mycentos mytomcat8
Inicie o contêiner do tomcat com a nova imagem
-p é mapeamento de porta
docker run -d -i -t --name=tomcat -p 8888:8080 mytomcat8 /bin/bash
Inicie o contêiner do Tomcat
Comece o tomcat
Observação: a porta acessada é a porta mapeada pelo docker, não a porta do próprio tomcat
É o fim, câmbio!