2013-07-21 11 views

Odpowiedz

7

Rzeczywiście, zdalny interfejs API nie ma trybu "odłączania", ponieważ tryb "dołączania" jest dodatkowym punktem końcowym.

Jeśli chcesz uruchomić w trybie odłączania ze zdalnym interfejsem API, po prostu utwórz i uruchom kontener bez dołączania do niego.

Jeśli pojemnik nadal się wyłącza natychmiast, użyj docker logs <container id>, aby sprawdzić, czy nie ma błędów. Problem może nie mieć nic wspólnego z detach.

+0

Cześć creack, naprawdę doceniam twój wkład w tej sprawie. Próbowałem tego, ale kontener zaczyna się i zatrzymuje wkrótce potem. Kiedy używam klienta dockera, mogłem uniknąć zatrzymania kontenera przez dodanie opcji -t (tty). Doceń wszelkie przemyślenia na ten temat. – imesh

+0

doh. ale wygląda na to, że to nie jest odpowiednik. użycie polecenia docker run -d spowoduje, że proces pozostanie otwarty i uruchomiony, ale użycie zdalnego api/container/ID/start spowoduje uruchomienie kontenera i jego zakończenie. – masi

1

O ile wiem, zdalny odpowiednik interfejsu API opcji CLI to "OpenStdin": true w wywołaniu /containers/create. Bez tego wydaje się, że wszystko, co czyta ze stdin, otrzymuje EOT.

This to miejsce, w którym stdin został zainicjowany (lub niezainicjowany) jako rura do kontenera, nie śledziłem go za tym.

5

Ważne jest, aby zrozumieć polecenie „run doker” obudowuje serię poleceń z perspektywy API:

  • ciągnąć obrazu (jeśli nie są dostępne lokalnie)
  • tworzenia kontenera
  • dołączyć do pojemnik
  • rozpoczyna pojemnik

Podczas „doker run -d” to to samo, co powyżej bu t bez kroku "dołącz".

Dlatego należy utworzyć, a następnie uruchomić kontener przy użyciu zdalnego interfejsu API.

Jeśli pojemnik nadal się wyłącza natychmiast, użyj docker logs <container id>, aby sprawdzić, czy nie ma błędów. Problem może nie mieć nic wspólnego z detach.

+2

Zanim utworzy kontener, wyciąga obraz, jeśli nie jest dostępny lokalnie. –

Powiązane problemy