Como criar e configurar automaticamente imagens do Docker personalizado com o Dockerfile - Parte 3

Como criar e configurar automaticamente imagens do Docker personalizado com o Dockerfile - Parte 3

Este tutorial se concentrará em como criar uma imagem personalizada do Docker com base em Ubuntu com Apache serviço instalado. Todo o processo será automatizado usando um Dockerfile.

As imagens do Docker podem ser construídas automaticamente a partir de arquivos de texto, nomeados Dockerfiles. Um arquivo do docker contém instruções ou comandos ordenados passo a passo usados ​​para criar e configurar uma imagem do docker.

Requisitos

  • Instale o docker e aprenda manipulação de contêiner do Docker - Parte 1
  • Implante e execute aplicativos em Docker Rececters - Parte 2

Basicamente, um arquivo do docker contém várias instruções para construir e configurar um contêiner específico com base em seus requisitos. As seguintes instruções são as mais usadas, algumas delas são obrigatórias:

  1. DE = Obrigatório como a primeira instrução em um arquivo do docker. Instrui o Docker a puxar a imagem base da qual você está construindo a nova imagem. Use uma tag para especificar a imagem exata da qual você está construindo:
Ex: de Ubuntu: 20.04 
  1. Mantenedor = Autor da imagem de construção
  2. CORRER = Esta instrução pode ser usada em várias linhas e executa quaisquer comandos depois que uma imagem do Docker foi criada.
  3. Cmd = Execute qualquer comando quando a imagem do Docker for iniciada. Use apenas uma instrução CMD em um Dockerfile.
  4. PONTO DE ENTRADA = O mesmo que CMD, mas usado como o comando principal da imagem.
  5. EXPOR = Instrui o contêiner a ouvir em portas de rede ao executar. As portas de contêiner não são acessíveis do host por padrão.
  6. Env = Definir variáveis ​​de ambiente de contêineres.
  7. ADICIONAR = Copiar recursos (arquivos, diretórios ou arquivos dos URLs).

Etapa 1: Criando ou escrevendo o repositório do Dockerfile

1. Primeiro, vamos criar algum tipo de Dockerfile Repositórios para reutilizar arquivos no futuro para criar outras imagens. Fazer um diretório vazio em algum lugar em /var Partição em que criaremos o arquivo com as instruções que serão usadas para construir a imagem recém -Docker.

# mkdir -p/var/docker/ubuntu/apache # touch/var/docker/ubuntu/apache/dockerfile 
Crie um repositório de Dockerfile

2. Em seguida, comece a editar o arquivo com as seguintes instruções:

# vi/var/docker/ubuntu/apache/dockerfile 

Trecho de DOKERFILE:

Do mantenedor do Ubuntu Your_name <[email protected]> Execute apt -get -y install apache2 run eco “hello apache server no ubuntu docker”>/var/www/html/index.html exponha 80 cmd/usr/sbin/apache2ctl -d em primeiro plano 
Repositório do Dockerfile

Agora, vamos passar pelas instruções do arquivo:

A primeira linha nos diz que estamos construindo de um Ubuntu imagem. Se nenhuma tag for enviada, digamos 14:10 por exemplo, a imagem mais recente de Docker Hub é usado.

Na segunda linha, adicionamos o nome e e-mail do criador da imagem. Próximo dois CORRER As linhas serão executadas no contêiner ao criar a imagem e instalarão Apache Daemon e eco Alguns texto na página da web do Apache padrão.

O EXPOR A linha vai instruir o Docker contêiner para ouvir na porta 80, Mas a porta não estará disponível para fora. A última linha instrui o contêiner a executar o serviço Apache em primeiro plano após o início do contêiner.

3. A última coisa que precisamos fazer é começar a criar a imagem emitindo o comando abaixo, que criará localmente uma nova imagem do Docker nomeada Ubuntu-apache Com base no Dockerfile criado anteriormente, como mostrado neste exemplo:

# Docker Build -t Ubuntu -Apache/var/Docker/Ubuntu/Apache/ 
Crie a imagem do Docker

4. Depois que a imagem foi criada por Docker, Você pode listar todas as imagens disponíveis e identificar sua imagem emitindo o seguinte comando:

# imagens do docker 
Liste todas as imagens do Docker

Etapa 2: Execute o contêiner e acesse o Apache da LAN

5. Para executar o contêiner continuamente (em segundo plano) e acessar os Serviços Expostos (Portas) expostos do contêiner do host ou outra máquina remota na sua LAN, execute o comando abaixo no seu término do host prompt:

# Docker Run -d -p 81:80 Ubuntu -Apache 
Executar imagem de contêiner do Docker

Aqui o -d A opção é executada Ubuntu-apache contêiner em segundo plano (como daemon) e o -p Opção mapeia a porta do contêiner 80 para o seu porto de host localizador 81. O acesso externo à LAN ao serviço Apache pode ser alcançado através da porta 81 apenas.

O comando netstat lhe dará uma idéia sobre quais portas o host está ouvindo.

Depois que o contêiner foi iniciado, você também pode executar Docker PS comando para visualizar o status do contêiner em execução.

6. A página da web pode ser exibida no seu host da linha de comando usando ondulação utilidade contra o endereço IP da sua máquina, localhost ou interface de rede do docker na porta 81. Use a linha de comando IP para mostrar endereços IP da interface de rede.

# IP Addr [List Nework Interfaces] # Curl IP-Address: 81 [Endereço IP do Docker do Sistema] # Curl LocalHost: 81 [Localhost] 
Verifique a interface de rede do docker e o endereço IP Verifique a página da web do Docker Apache

7. Para visitar a página da web do contêiner da sua rede, abra um navegador em um local remoto e use o protocolo HTTP, o endereço IP da máquina onde o contêiner está em execução, seguido pela porta 81, conforme ilustrado na imagem abaixo.

http: // ip-address: 81 
Verifique a página Apache do contêiner do docker

8. Para obter um interior de quais processos estão executando dentro do contêiner emitir o seguinte comando:

# Docker PS # Docker Top  
Verifique os processos do Docker em execução

9. Para parar o problema do contêiner Docker Stop Comando seguido pelo ID ou nome do contêiner.

# Docker Stop # Docker PS 

10. Caso você queira atribuir um nome descritivo para o contêiner, use o --nome opção como mostrado no exemplo abaixo:

# Docker Run -Nome My -www -d -p 81:80 Ubuntu -apache # Docker PS 
Dê o nome do contêiner do docker

Agora você pode fazer referência ao contêiner para manipulação (Start, Stop, Top, Stats etc.) apenas usando o nome atribuído.

# estatísticas do docker my-www 
Monitore a utilização de contêineres do docker

Etapa 3: Crie um arquivo de configuração em todo o sistema para contêiner do Docker

11. Sobre CENTOS/RHEL você pode criar um Systemd arquivo de configuração e gerencie o contêiner, como você normalmente faz para qualquer outro serviço local.

Por exemplo, crie um novo arquivo Systemd chamado, digamos, Apache-Docker.serviço Usando o seguinte comando:

# vi/etc/Systemd/System/Apache-Docker.serviço 

Apache-Docker.serviço Trecho do arquivo:

[Unidade] Descrição = Recipiente Apache Requer = Docker.serviço depois = Docker.Serviço [Serviço] RESTART = sempre ExecStart =/usr/bin/Docker Iniciar -a my -www execstop =/usr/bin/docker parada -t 2 my -www [install] wanted = local.alvo 

12. Depois de terminar de editar o arquivo, feche -o, recarregue o daemon Systemd para refletir as alterações e iniciar o contêiner emitindo os seguintes comandos:

# SystemCtl Daemon-Reload # SystemCtl Start Apache-Docker.Serviço # Systemctl Status Apache-Docker.serviço 

Este foi apenas um exemplo simples do que você pode fazer com um simples Dockerfile Mas você pode pré-construir algumas aplicações bastante sofisticadas que você pode iniciar em apenas alguns segundos com recursos e esforços mínimos.

Leitura adicional:

Parte 4: Como monitorar os contêineres do Docker no Linux