Como executar uma instância do Docker a partir de um Dockerfile?

Como Executar Uma Instancia Do Docker A Partir De Um Dockerfile



Docker é uma plataforma aberta popular, universalmente usada para construir, testar, implantar e enviar aplicativos em um ambiente em contêineres. Docker usa o nível de virtualização do sistema operacional e oferece suporte a diferentes componentes, como contêineres Docker, imagens, redes e volume Docker.

Os contêineres Docker são um dos componentes essenciais da plataforma Docker que empacota o programa, as definições de configuração e as dependências usando a imagem Docker. A imagem Docker é um modelo simples ou instantâneo de um contêiner que orienta o contêiner sobre como conteinerizar um aplicativo. Essas imagens estão disponíveis principalmente no registro oficial do hub Docker. Os usuários também podem projetar essas imagens de acordo com os requisitos do projeto usando Dockerfile.

Este blog irá explicar:







O que é um Dockerfile?

Um Dockerfile é um arquivo de texto normal que contém comandos e instruções que definem a estrutura básica de um contêiner Docker. Essas instruções podem ser executadas no terminal sem nenhum arquivo, mas executar cada comando um após o outro é uma tarefa agitada e complexa. O Dockerfile torna mais fácil para os desenvolvedores especificarem todos os requisitos e instruções em um arquivo. Este arquivo será então usado para construir o modelo de contêiner que é uma imagem Docker. Depois disso, a imagem do Docker é executada para iniciar a instância no contêiner do Docker.



Comandos básicos do Dockerfile

Alguns comandos básicos do Dockerfile usados ​​para definir o snapshot básico do contêiner estão listados abaixo em formato tabular:



Comandos Descrição
DE O ' DE ”O comando é utilizado para definir a imagem base para o modelo de contêiner. Essas imagens são extraídas do registro oficial do Docker, Docker Hub.
MANUTENTOR O ' MANUTENTOR ”O comando define as informações do autor (nome e e-mail) que está criando a imagem Docker.
DIRTRABALHO Ele especifica o diretório de trabalho de um aplicativo em contêiner.
CÓPIA DE Utilizado para copiar os arquivos de origem e configuração do sistema host para o caminho especificado do contêiner Docker.
ADICIONAR O ' ADICIONAR ”O comando é semelhante ao“ CÓPIA DE ”Comando, mas também oferece suporte ao URL remoto para adicionar o arquivo do URL ao caminho do contêiner, como do repositório GitHub ao caminho do contêiner.
CORRER O ' CORRER ”É utilizado para executar os comandos no contêiner. No Dockerfile, é usado principalmente para gerenciar e instalar dependências extras dentro do contêiner.
DMC DMC ”Define os pontos padrão dos contêineres Docker. Basicamente define os executáveis ​​​​e os parâmetros padrão do “ PONTO DE ENTRADA ”.
PONTO DE ENTRADA O ' PONTO DE ENTRADA ”O comando também é usado para definir os executáveis ​​​​do contêiner Docker. Basicamente, ele define os aplicativos padrão que são usados ​​sempre em um contêiner. O comando ENTRYPOINT também é usado uma vez em um Dockerfile.
DO UTILIZADOR Este comando é usado para definir o UID (nome de usuário) para executar os comandos no Container
VOLUME O ' VOLUME ”O comando é usado para vincular ou montar o volume externo (sistema de arquivos) com um contêiner.
ENV O ' ENV ”O comando é utilizado para definir as variáveis ​​de ambiente do contêiner.
ARG O ' ARG ”É utilizado para passar os argumentos dentro do contêiner.
EXPOR O ' EXPOR ”O comando especifica as portas de exposição nas quais o contêiner será executado.
ONBUILD Ele lê instruções da imagem base, mas aciona essas instruções por meio da imagem downstream.
RÓTULO O ' RÓTULO ”É utilizado para especificar os metadados do instantâneo do contêiner.

Como executar uma instância do Docker a partir de um Dockerfile no Docker?

Para executar uma instância ou contêiner do Docker usando Dockerfile, primeiro crie um Dockerfile. Em seguida, crie o snapshot básico do contêiner usando Dockerfile. Depois disso, execute o snapshot para iniciar a instância do Docker.





Siga as instruções abaixo para ilustração.

Etapa 1: crie um Dockerfile

Primeiro, crie um Dockerfile. Lembre-se de que Dockerfile não possui nenhuma extensão de arquivo. Depois disso, cole os seguintes comandos no arquivo:



DE golang: 1,8

DIRTRABALHO / ir / fonte / aplicativo

COPIAR main.go .

CORRE, vá construir -o servidor web .

EXPOR 8080 : 8080

PONTO DE ENTRADA [ './servidor web' ]

Etapa 2: criar arquivo de programa

Em seguida, crie um novo arquivo chamado “ principal.go ”que contém o programa Golang simples. Para isso, cole o seguinte programa no arquivo:

pacote principal
importar (
'fmt'
'registro'
'rede/http'
)

manipulador de funções ( Em http.ResponseWriter, r * http.Solicitação ) {
fmt.Fprintf ( Em , 'Olá! Bem-vindo ao tutorial LinuxHint' )
}
função principal ( ) {
http.HandleFunc ( '/' , manipulador )
log.Fatal ( http.ListenAndServe ( '0.0.0.0:8080' , nada ) )
}

Etapa 3: gerar instantâneo do contêiner

Agora, construa o snapshot do Docker do contêiner usando “ docker build -t -f . ”:

construção do docker -t vá-img -f Dockerfile.

No comando acima, o “ -t ”opção define o nome ou tag da imagem,“ -f ”Especifica o caminho para o Dockerfile do qual o mecanismo Docker precisa ler o contexto de construção:

Para verificar se a imagem foi criada com sucesso ou não, execute o “ imagens docker ”comando:

imagens docker go-img

A saída mostra que criamos com sucesso o snapshot do contêiner a partir do Dockerfile:

Etapa 4: execute o instantâneo para iniciar o contêiner

Agora, inicie a instância do Docker no contêiner Docker executando o snapshot do contêiner criado na etapa acima:

execução do docker -p 8080 : 8080 --nome vá-cont -d vá-img

No comando acima, o “ -p ”A opção executa o contêiner no“ 8080 'porto', -nome ”define o nome do contêiner e o“ -d ”Opção executa o contêiner em modo desanexado (serviço em segundo plano):

Para verificar se o contêiner está em execução ou não, liste os contêineres em execução usando o “ janela de encaixe ps ”comando:

janela de encaixe obs:

Agora, navegue até “ http://localhost:8080 ”E verifique se o aplicativo está sendo executado na porta de exposição ou não:

A saída acima indica que iniciamos efetivamente a instância do Docker usando Dockerfile.

Como executar uma instância de um Dockerfile no Docker Compose?

Docker compose é outro plugin importante da plataforma Docker que nos permite executar várias instâncias em diferentes contêineres ao mesmo tempo. Os usuários também podem executar a instância do Docker a partir do Dockerfile usando o plugin Docker Compose. Para ilustração, siga as etapas fornecidas.

Etapa 1: criar Dockerfile

Primeiro, crie um Dockerfile. Por exemplo, estamos usando o mesmo Dockerfile e arquivo de programa usados ​​na seção acima:

DE golang: 1,8

DIRTRABALHO / ir / fonte / aplicativo

COPIAR main.go .

CORRE, vá construir -o servidor web .

EXPOR 8080 : 8080

PONTO DE ENTRADA [ './servidor web' ]

Etapa 2: crie o arquivo docker-compose.yml

Em seguida, crie um “ docker-compose.yml ” e copie os seguintes pares de chaves no arquivo:

versão: '3'

Serviços:

rede:
construir: .
portos:
- 8080 : 8080

No recorte acima mencionado:

  • Serviços ”É utilizado para especificar os serviços de composição que serão executados em um contêiner separado. Para ilustração, configuramos apenas um serviço “ rede ”Para manter o código limpo e simples.
  • construir ”O par de chaves é utilizado para ler o contexto de construção do Dockerfile. Aqui, o docker lerá as instruções do Dockerfile e construirá o contêiner de acordo.
  • portos ”Define as portas de exposição nas quais o contêiner será executado.

Etapa 3: iniciar a instância do Docker

Agora, execute a instância do Docker em um contêiner usando o “ docker-compose up ”comando:

docker-compose up -d

Para verificação, verifique a lista de contêineres de composição em execução usando o “ docker-compose ps ”comando:

docker-compose obs:

A saída mostra que o “ rede ”O serviço está sendo executado com sucesso no“ golangapp-web-1 ”contêiner:

Navegue até a porta de exposição do serviço de composição e verifique se o programa está em execução ou não. O resultado abaixo mostra que iniciamos com sucesso a instância do Docker a partir do Dockerfile usando o Docker compose:

Trata-se de executar uma instância do Docker a partir de um Dockerfile.

Conclusão

Para executar uma instância do Docker em um contêiner a partir de um Dockerfile, primeiro crie o Dockerfile. Adicione os comandos dentro do arquivo para criar a imagem ou modelo do contêiner Docker. Em seguida, faça a imagem do contêiner ou instantâneo usando o “ docker build -t -f . ” comando. Agora, execute a imagem do contêiner para iniciar a instância do Docker. Os usuários também podem usar o Docker compose para executar a instância do Docker a partir do Dockerfile. Esta postagem ilustrou como executar uma instância do Docker a partir de um Dockerfile.