Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

274
Vistas
Obtener la salida ejecutiva del motor API de docker

Intento obtener el resultado de un comando que estoy ejecutando dentro de un contenedor, pero hasta ahora solo lo obtengo en texto RAW. Necesito poder obtener la salida con PHP, parece que no puedo hacer eso cuando regresa en texto RAW.

Aquí está mi Dockerfile:

 FROM phusion/baseimage:0.9.19 CMD ["/sbin/my_init"] WORKDIR /root RUN sed -i "s/^exit 101$/exit 0/" /usr/sbin/policy-rc.d RUN apt-get update RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y \ nginx \ php-fpm php-mysql php-gd php-curl php-cli php-mbstring php-dom unzip RUN service php7.0-fpm start EXPOSE 80 RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

Y aquí están las solicitudes de curl que estoy ejecutando:

 ## Create container curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image":"test-container","Env":["VIRTUAL_HOST=test.domain.dev"]}' -X POST http:/v1.27/containers/create?name=test.domain.dev ## Start container curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -X POST http:/v1.27/containers/test.domain.dev/start ## Create exec instance curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{ "AttachStdin":false,"AttachStdout":true,"AttachStderr":true, "Tty":false, "Cmd":["/bin/bash", "-c", "date"] }' -X POST http:/v1.27/containers/test.domain.dev/exec ## Start exec instance curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{ "Detach": false, "Tty": false }' -X POST http:/v1.27/exec/bcd34186a9a7360809cace3674fec03bd1c70c1c453be24ad058a03fa0b0e960/start // Sun Mar 26 23:23:53 UTC 2017

Salida de docker info :

 Containers: 8 Running: 4 Paused: 0 Stopped: 4 Images: 152 Server Version: 17.03.0-ce Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 977c511eda0925a723debdc94d09459af49d082a runc version: a01dafd48bc1c7cc12bdb01206f9fea7dd6feb70 init version: 949e6fa Security Options: seccomp Profile: default Kernel Version: 4.9.12-moby Operating System: Alpine Linux v3.5 OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 1.952 GiB Name: moby ID: JNZW:S7LC:4JRG:M3K3:6EFV:RZNR:Q7T5:XNJA:LB2Z:PO5G:PGPX:RI2E Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): true File Descriptors: 43 Goroutines: 81 System Time: 2017-03-26T23:25:45.809302866Z EventsListeners: 2 No Proxy: *.local, 169.254/16 Registry: https://index.docker.io/v1/ Experimental: true Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false

Entonces, ¿hay alguna forma adecuada de obtener este resultado? Gracias por cualquier ayuda

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Configuré "AttachStdout" en verdadero y "Tty" en verdadero, cuando creo una instancia ejecutiva. En la solicitud de inicio ejecutivo, configuro "Tty" en verdadero.

Esto me muestra los valores en el tty pero no puedo capturarlo desde una aplicación.

 # Create the exec # EXEC_CREATE=`curl --silent --unix-socket /var/run/docker.sock "http:/containers/${CONTAINER_NAME}/exec" -XPOST \ -H "Content-Type: application/json" \ -d '{ "AttachStdout": true, "Tty": true, "Cmd": [ "ruby", "-e", "5.times { puts :hi; sleep 1 }"] }' ` echo $EXEC_CREATE | jq '.' # Run the exec # EXEC_ID=$(echo $EXEC_CREATE | jq -r '.Id') curl --silent --unix-socket /var/run/docker.sock "http:/exec/${EXEC_ID}/start" -XPOST \ -H "Content-Type: application/json" \ -d '{ "Detach": false, "Tty": true }'

tomado de

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda