Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

284
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda