Persoalmente o que me gusta de Docker é a facilidade coa que é posible lanzar contedores grazas ás imaxes que están no Dockerhub.

Pero cando se ten unha necesidade especial, especialmente na configuración profesional, dáse conta da súa propia imaxe faise imprescindible. O que é moi fácil de facer con Docker grazas ao DockerFile.

DockerFile a un contedor

un DockerFile Que é?

Un DockerFile é un ficheiro de texto co que será Capaz de dar ao Docker as instrucións necesarias para poder crear unha imaxe. É unha pode gustar a receita de cociña dun prato para cociñar.

Para comezar, debemos entender como un DockerFile está escribindo, hai unha sintaxe seguida coas seguintes instrucións:

  • FROM Establece a imaxe de orixe
  • LABEL Permite engadir metadatos a unha imaxe
  • RUN Permite executar comandos no seu contenedor
  • ADD Engade ficheiros ao seu
  • WORKDIR Container Sets Your
  • Permítelle definir os portos de escoita por defecto
  • VOLUME Establece os volumes usables
  • CMD Establece o comando predeterminado ao executar os recipientes de Docker.

Escribe o seu primeiro DockerFile

para o noso exemplo Construiremos unha imaxe para o software Scrumblr que lle permite mostrar unha matriz de seguimento de manchas modificables en tempo real.
Este software usa Redis e Nodejs para traballar veremos como crear unha imaxe de docker a partir del para obter o seguinte resultado:

Scrumblr captura de pantalla'écran de scrumblr

Un ficheiro de dockerfile está sempre escrito do mesmo xeito. Comezamos poñendo a imaxe que nos servirá como base para o traballo e a acción realízase nesta imaxe. Para atopar a imaxe que corresponde á túa necesidade, aconsellámoste a partir dunha imaxe oficial. Estas imaxes son actualizadas regularmente e certificadas por Docker.

Prerrequisitos

Hai algúns requisitos previos para realizar este tutorial:

  • Un anfitrión con Docker instalado (Se isto non é o suxeito é procesado neste artigo: Instalar Docker para implementar as súas aplicacións)
  • Crear un directorio de traballo para este proxecto.
  • Crear un ficheiro de dockerfile no cartafol do proxecto .

a imaxe básica

Para o noso proxecto sairemos cunha imaxe Ubuntu 18.04 que é unha imaxe oficial.

FROM ubuntu:18.04LABEL maintainer="[email protected]"

Como se indicou anteriormente a imaxe que imos usar no noso DockerFile pola Directiva de seguir o nome da imaxe ea súa versión.
A Directiva da etiqueta permítelle engadir información á imaxe no noso caso Enderezo de correo da imaxe.

Instalar os requisitos previos

# Installation des prérequisRUN apt-get update && apt-get install -y wget sudo supervisor git redis && \ mkdir -p /var/log/supervisor && \ mkdir -p /etc/supervisor/conf.d

Agora estamos empezando a cambiar a imaxe básico. Para realizar un comando, usamos a directiva executar que só executa o comando declarado despois da directiva.

Neste paso instalamos os diferentes requisitos previos para a operación do nome Scrumblr:

  • Actualización de depósitos
  • Instalación de paquetes (wget, sudo, supervisor, git e redis)
  • Creación do cartafol de supervisor en / var / log /
  • Creando o cartafol Conf.D en / etc / supervisor /

Para executar múltiples comandos despois de ter que anunciar entre si con “&& “que permite que o código Bash execute en serie e” \ “comandos que lle permitan volver á liña para ver máis claramente no código.

Para o seguinte paso, proporcionaremos o ficheiro de configuración do servizo de supervisor a Docker para copiar na nosa imaxe.

Para comezar a crear un ficheiro de supervisor .conf no directorio onde está V Otre DockerFile e engade o seguinte contido.

nodaemon=truecommand=redis-serverautostart=trueautorestart=trueuser=rootstdout_logfile=/var/log/redis/stdout.logstderr_logfile=/var/log/redis/stderr.logcommand=node server.js --port 80autostart=trueautorestart=trueuser=rootstdout_logfile=/var/log/supervisor/scrumblr.logstderr_logfile=/var/log/supervisor/scrumblr_err.log

Entón diga a Docker coa dirección ADD para engadir o noso ficheiro supervisor.conf no / etc / etc / of nosa imaxe.

ADD supervisor.conf /etc/supervisor.conf

Instalar nodejs

Agora instalaremos na nosa imaxe de nodejs que nos permitirá compilar e executar as fontes de Scrumblr. Como antes de utilizar a directiva de execución para realizar as seguintes accións.

  • Descargar nodejs Script de instalación
  • Execución do script descargado
  • Instalación do paquete de nodejs
# Installation de NodeJSRUN wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ apt-get install -y nodejs

Instalación Scrumblr

Agora podemos instalar a aplicación Scrumblr na nosa imaxe sempre usando a directiva executar para realizar as seguintes accións:

  • Clonar das fontes Scrumb do depósito GitHub do proxecto
  • Mover en cartafol / scrumblr
  • Instalar scrumblr a través de npm
# Installation de SCRUMBLRRUN git clone https://github.com/aliasaria/scrumblr.git && \ cd scrumblr && \ npm install

Cambiar o ficheiro CONFIG.JS

Para o último paso de configuración

Para o último paso de configuración debemos modificar unha liña do ficheiro “config.js” para permitir a aplicación de enerxía conectada á base de datos Redis .

A seguinte liña que usa a directiva executar unha vez máis usa o comando “SED” para substituír a cadea de carácter 127.0.0.1:6379 en Redis: //127.0.0.1: 6379.

Finalización do DockerFile

Para rematar, proporcionaremos as instrucións necesarias para realizar a nosa imaxe nun recipiente.

  • Workdir especifica o Directorio de traballo de contedores aquí / scrumblr
  • Expute especifica o porto de comunicación no noso caso o 80
  • StopSignal indica que o sinal do sistema que impide o comando
  • CMD indica o comando Para executar no inicio do contedor
WORKDIR /scrumblrEXPOSE 80STOPSIGNAL SIGTERMCMD 

Se o comando na Directiva CMD está composto por varios campos, é imprescindible respecto da seguinte sintaxe:

O noso DockerFile está agora completo e debería parecer así:

FROM ubuntu:18.04LABEL maintainer="[email protected]"# Installation des prérequisRUN apt-get update && apt-get install -y wget sudo supervisor git redis && \ mkdir -p /var/log/supervisor && \ mkdir -p /etc/supervisor/conf.dADD supervisor.conf /etc/supervisor.conf# Installation de NodeJSRUN wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ apt-get install -y nodejs# Installation de SCRUMBLRRUN git clone https://github.com/aliasaria/scrumblr.git && \ cd scrumblr && \ npm install# Modification du fichier config.jsRUN sed -i -e "s/127.0.0.1:6379/redis:\/\/127.0.0.1:6379/g" /scrumblr/config.jsWORKDIR /scrumblrEXPOSE 80STOPSIGNAL SIGTERMCMD 

Construción e lanzamento da nosa imaxe

Só temos que construír a nosa imaxe nomeándoa correctamente. Para facer este movemento no directorio onde está o seu DockerFile e o ficheiro supervisor.conf e inicia o seguinte comando:

docker build -t scrumblr .
  • o argumento -t Especifique unha etiqueta na nosa imaxe.
Captura de pantalla de terminal que mostra o control SED'écran terminal montrant la commande SED

Unha vez que a súa imaxe está construída e etiqueta, pode executalo e validar a súa operación co seguinte comando:

docker run --detach --publish 8080:80 --name scrumblr scrumblr:latest
  • -detach permítelle executar o contenedor en modo separar que é dicir que o contedor funcionará no modo de servizo.
  • – Publish permítelle especificar o porto a Acceda á aplicación. Primeiro ten que especificar aquí o porto do servidor no 8080 e despois o porto de contedores anterior.
  • -name permítelle configurar o nome do contedor.
Captura de pantalla que mostra o comando Executar do Docker'écran montrant la commande docker run

Agora que o seu contedor é Lanzado pode acceder ao seu Scrumblr a través da dirección IP do seu anfitrión de Docker no porto 8080.

Captura de pantalla dunha web Navegador con Scrumblr'écran d'un navigateur web avec SCRUMBLR

Leave a comment

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *