Docker Compose Exec

Docker Compose Exec



Docker s'ha convertit en una de les eines més influents i potents del desenvolupament modern. Ofereix funcions increïbles que permeten als desenvolupadors configurar i executar aplicacions en contenidors en gairebé qualsevol entorn.

Una de les eines més potents de l'ecosistema Docker és la utilitat Docker Compose. Docker és una utilitat de línia d'ordres amb una instal·lació predeterminada que ens permet definir i executar diversos contenidors des d'una sola entitat.

Amb Docker Compose, podem definir tots els serveis, eines i dependències que necessitem per executar una aplicació determinada mitjançant YAML en un fitxer anomenat docker-compose.yml.







Podem invocar l'eina docker-compose i apuntar-la al fitxer definit. Aleshores, el motor Docker utilitzarà totes les instruccions definides al fitxer per iniciar tots els serveis necessaris i desplegar les aplicacions.



En aquest tutorial, explorarem el funcionament de l'ordre exec docker-compose. Començarem descrivint què fa l'ordre i els paràmetres admesos, i després proporcionarem alguns exemples bàsics d'ús de les ordres en exemples reals de Docker.



Ús de comandaments

L'ordre docker compose exec ens permet executar una comanda determinada a l'intèrpret d'ordres d'un contenidor en execució. Per exemple, podeu utilitzar l'ordre docker exec per iniciar o aturar automàticament un servei definit al contenidor.





A continuació es mostra la sintaxi de l'ordre exec docker-compose:

docker compose exec [ OPCIONS ] COMANDAMENT DEL SERVEI [ ARGS ... ]

Els paràmetres de l'ordre s'expressen a continuació:



  1. OPCIONS: s'utilitza per especificar l'acció o el comportament de l'ordre exec. Podeu comprovar les opcions admeses a la secció següent:
  2. SERVEI: especifica el nom del servei definit al fitxer docker-compose.yaml.
  3. COMANDA [ARGS...]: s'utilitza per especificar l'ordre i qualsevol argument que vulgueu executar dins del contenidor del servei especificat.

Opcions de comandament

Les següents són les opcions compatibles que podeu especificar quan executeu l'ordre exec:

  1. –detach o -d – Això indica al motor docker que executi l'ordre en segon pla o en mode desconnectat.
  2. –env o -e – S'utilitza per establir una variable d'entorn determinada o múltiples variables d'entorn.
  3. –index – Això especifica l'índex del contenidor si el servei té diverses rèpliques.
  4. –no-TTY o -T: aquesta opció desactiva l'assignació de pseudo-TTY. Per defecte, l'ordre docker compose exec assignarà un TTY a l'ordre especificada.
  5. –user o -u – Especifica l'usuari que ha d'executar l'ordre especificada.
  6. –workdir o -w – Especifica la ruta al directori workdir per a l'ordre.
  7. –dry-run – Això indica al Docker que executi l'ordre en mode d'execució en sec.

Exemple 1: Accés a un shell dins del contenidor

Comencem demostrant com utilitzar l'ordre exec dins d'un contenidor. Suposem que tenim un servei anomenat hello definit al fitxer docker-compose.yml. Podem obrir un shell dins del contenidor mitjançant l'ordre exec, tal com es mostra a continuació:

$ docker compose exec hola sh

Exemple 2: Execució de l'ordre com a usuari diferent

També podem executar una ordre dins del contenidor com un usuari diferent mitjançant el paràmetre -u. Un exemple d'ordre és el que es mostra:

$ docker compose exec -u=linuxhint hello echo 'hola món'

En aquest cas, demanem a l'ordre docker compose que executi l'ordre echo 'hello world' com a usuari linuxhint al servei hello del contenidor.

Conclusió

En aquesta publicació, hem après com configurar i utilitzar l'ordre docker compose exec per interactuar amb i executar ordres als serveis definits al fitxer docker-compose.yml d'un contenidor determinat.