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

280
Views
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

over 4 years ago · Santiago Trujillo
1 answers
Answer question

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

over 4 years ago · Santiago Trujillo 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!