Como criar e configurar automaticamente imagens do Docker personalizado com o Dockerfile - Parte 3
- 1535
- 23
- Arnold Murray
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:
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
Mantenedor
= Autor da imagem de construçãoCORRER
= Esta instrução pode ser usada em várias linhas e executa quaisquer comandos depois que uma imagem do Docker foi criada.Cmd
= Execute qualquer comando quando a imagem do Docker for iniciada. Use apenas uma instrução CMD em um Dockerfile.PONTO DE ENTRADA
= O mesmo que CMD, mas usado como o comando principal da imagem.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.Env
= Definir variáveis de ambiente de contêineres.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/dockerfileCrie 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 planoRepositó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 dockerListe 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 -ApacheExecutar 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: 81Verifique 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 TopVerifique 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 PSDê 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-wwwMonitore 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- « Como executar qualquer distribuição Linux diretamente do disco rígido no Ubuntu usando o menu Grub
- Como instalar atualizações de segurança no Ubuntu »