Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

232
Views
encuentre el nombre de la ventana acoplable en una aplicación node.js que se ejecuta dentro del contenedor de la ventana acoplable

Tengo una aplicación node.js ejecutándose dentro de un contenedor acoplable con el nodo de imagen base: 16-alpine3.11. Quiero obtener el nombre del contenedor en el que se está ejecutando.

 ex: docker ps: CONTAINER ID NAMES xyz node test.js: const c_name= //get container name
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Desde fuera del contenedor

Puede usar la ventana acoplable cli para hacer esto. En el ejemplo, filtramos por ancestro bitnami/redis (en su caso, sería node:16-alpine3.11 )

 $ docker container ls --filter "ancestor=bitnami/redis" --format "table {{.ID}}\t{{.Image}}\t{{.Names}}"

Esto devuelve la identificación, el nombre y la imagen del contenedor como una tabla. Para recuperar los resultados como un objeto json, actualice el indicador de formato como se muestra a continuación:

 docker container ls --filter "ancestor=bitnami/redis" --format 'json { "Id":"{{.ID}}", "Image": "{{.Image}}", "Names": "{{.Names}}" }'

Consulte los prácticos documentos de referencia de cli proporcionados por docker.

Desde el interior del contenedor

Pase el socket de Unix al contenedor e invoque un script para obtener el nombre del contenedor:

 $ docker run -it -v "/var/run/docker.sock:/var/run/docker.sock" origami-duckling:latest

El Dockerfile para `origami-duckling se ve así:

 FROM node:16-alpine3.11 WORKDIR /usr/app RUN apk add curl jq ENV DOCKER_HOST="unix:///run/docker.sock" COPY get-container-name.sh /usr/app/get-container-name.sh CMD /usr/app/get-name.sh

Probablemente ejecutaría get-container-name antes de usar cmd para ejecutar la aplicación de nodo en su contenedor.

El get-container-name.sh se vería así:

 #!/usr/bin/env sh export CONTAINER_NAME="$(curl -s --unix-socket /run/docker.sock http://docker/containers/$HOSTNAME/json | jq '.Name')" echo $CONTAINER_NAME

Actualización: puede hacer esto desde su aplicación node.js si necesita:

Estoy usando got@11.8.3, got 12.x es ESM puro.

 const got = require('got'); async function getHostName() { const metadata = await got(`http://unix:/var/run/docker.sock:/containers/${process.env.HOSTNAME}/json`).json(); console.log('Container name', metadata.Name); return metadata.Name }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!