Personal ceea ce iubesc cu docker este ușurința cu care este posibil să lanseze containere mulțumiri la imaginile care se află pe dockerHub.

Dar când cineva are o nevoie specială, în special în setarea profesională, realizarea propriei sale imagini devine esențială. Ceea ce este foarte ușor de făcut cu docker datorită dockerfilei.

Dockerfile la un container

un dockerfile Ce este?

A DockerFile este un fișier text cu care veți fi Abilitatea de a da docker instrucțiunile necesare pentru a crea o imagine. Este o poate ca rețeta de bucătărie a unui vas pentru un bucătar.

Pentru a începe să înțelegem cum scrie un dockerfile, există o sintaxă urmată de următoarele instrucțiuni:

  • FROM Setează imaginea sursă
  • LABEL Permite adăugarea de metadate la o imagine
  • RUN permite executarea comenzilor în recipientul dvs.
  • ADD adaugă fișiere în
  • WORKDIR container se stabilește
  • vă permite să definiți porturile de ascultare implicite
  • VOLUME Setează volumul utilizabil
  • Setează comanda implicită atunci când rulați containerele dvs. de docker.

Scrieți primul său dockerfile

pentru exemplul nostru Vom construi o imagine pentru software-ul scrutlr, care vă permite să afișați o serie de urmăriri de pete modificabile în timp real.
Acest software folosește Redis și Nodejs la lucru Vom vedea cum să creăm o imagine docker de la acesta pentru a obține următorul rezultat:

Scrublr Ecran Capture'écran de scrumblr

Un fișier dockerfile este întotdeauna scris în același mod. Începem prin punerea imaginii care ne va servi ca bază pentru muncă și acțiunea se desfășoară în această imagine. Pentru a găsi imaginea care corespunde nevoilor dvs., vă sfătuiesc să începeți de la o imagine oficială. Aceste imagini sunt actualizate periodic și certificate de docker.

Condiții preliminare

Există câteva premise pentru efectuarea acestui tutorial:

  • o gazdă cu docker instalat (Dacă acest lucru nu este subiectul este procesat în acest articol: Instalați docker pentru a vă implementa aplicațiile)
  • Creați un director de lucru pentru acest proiect.
  • Creați un fișier dockerfile în dosarul proiectului .

Imaginea de bază

Pentru proiectul nostru vom pleca cu o imagine Ubuntu 18.04, care este o imagine oficială.

Așa cum a indicat anterior imaginea pe care o vom folosi în Dockerfile prin directivă de la urmărirea numelui imaginii și a versiunii sale.
Directiva etichetă vă permite să adăugați informații imaginii în cazul nostru Adresa de corespondență a imaginii.

Instalarea preliminărilor

# 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

Începim acum să schimbăm imaginea de bază. Pentru a efectua o comandă, folosim directiva RUN care execută numai comanda declarată după directivă.

În acest pas vom instala diferitele condiții pentru funcționarea numelui scrumblr:

  • Actualizarea depozitelor
  • Instalarea pachetelor (Wget, sudo, supervizor, git și redis)
  • Crearea dosarului de supraveghere din / var / log /
  • Crearea dosarului Conf.D în / etc / supervizor /

pentru a rula mai multe comenzi după ce trebuie să le imbricați reciproc cu „&& „care permite codul de bash să ruleze în serii și comenzi” \ „care vă permite să reveniți la linie pentru a vedea mai clar în cod.

Pentru următorul pas vom oferi fișierul de configurare a serviciului de supraveghere la docker pentru copierea în imaginea noastră.

Pentru a începe să creați un fișier de supraveghetor. Configurați în directorul unde este v Otre DockerFile și adăugați următorul conținut.

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

apoi spuneți docker cu direcția adăugată pentru a adăuga fișierul nostru supervizor.conf în / etc / etc / de

ADD supervisor.conf /etc/supervisor.conf

Instalarea Nodejs

Vom instala acum în imaginea nodejs, care ne va permite să compilăm și să executăm sursele de Scrumblr. Ca înainte de a utiliza Directiva Run pentru a efectua următoarele acțiuni.

  • Descărcați scriptul de instalare NODJS
  • Executie scriptul descărcat
  • Instalarea pachetului NODEJS
# Installation de NodeJSRUN wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ apt-get install -y nodejs

Instalarea scrumblr

Putem acum instalarea aplicației scrutlr în imaginea noastră folosind întotdeauna directiva Run pentru a efectua următoarele acțiuni:

  • Clona din surse de scrumbl din depozitul GitHub al proiectului
  • mutare în folderul / scrumblr
  • Instalarea scrumblr prin npm
# Installation de SCRUMBLRRUN git clone https://github.com/aliasaria/scrumblr.git && \ cd scrumblr && \ npm install

Schimbarea fișierului config.js

Pentru ultimul pas de configurare trebuie să modificăm o linie a fișierului „config.js” pentru a permite aplicarea de energie conectată la baza de date Redis .

următoarea linie care utilizează din nou directiva Run utilizează încă o dată comanda „SED” pentru a înlocui lanțul de caracter 127.0.0.1:6379 în Redis: //127.0.0.1: 6379.

Finalizarea dockerfile

Pentru a termina vom furniza instrucțiunile necesare pentru a ne îndeplini imaginea într-un recipient.

  • WorkDir specifică Directorul de lucru al containerului aici / scrumblr
  • Expute specifică portul de comunicare în cazul nostru 80
  • stopsignal indică semnalul de sistem care oprește recipientul
  • cmd indică comanda Pentru a rula la pornirea containerului
WORKDIR /scrumblrEXPOSE 80STOPSIGNAL SIGTERMCMD 

Dacă comanda din directiva CMD este compusă din mai multe câmpuri, este imperativ următorul sintaxă:

DockerFilele noastre este acum completă și ar trebui să arate astfel:

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 

Construcția și lansarea imaginii noastre

Trebuie doar să ne construim imaginea prin numirea corectă a acestuia. Pentru a face această mișcare în directorul în care este conținut Dockerfile și fișierul supervizor.conf și lansați următoarea comandă:

docker build -t scrumblr .
  • argumentul -t Specificați o etichetă în imaginea noastră.
Captura ecranului terminal care prezintă butonul de control'écran terminal montrant la commande SED

Odată ce imaginea dvs. este construită și etichetată, puteți să o executați și să validați funcționarea cu următoarea comandă:

docker run --detach --publish 8080:80 --name scrumblr scrumblr:latest
screenshot Afișarea comenzii Docker Run'écran montrant la commande docker run

Acum că recipientul dvs. este Lansat puteți accesa scrumblr-ul dvs. prin adresa IP a gazdei dvs. de docker pe portul 8080.

screenshot al unui web Browser cu scrumblr'écran d'un navigateur web avec SCRUMBLR

admin

Leave a comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *