Zrobiłem trochę google i nie miałem szczęścia znajdując przypadek, w którym bym prowadził docker run -i some_image
zamiast docker run -it some_image
.Kiedy powinienem użyć `--interactive` bez` --tty` w kontenerze Docker?
Jeśli uruchomię docker run -i --name sample some_image bash
, kontener będzie działał na pierwszym planie, ale nie będę mógł wchodzić z nim w interakcję z powłoki, w której się znajduję. Nie mogę nawet zatrzymać jej za pomocą CTRL + C. Mogę jednak otworzyć inną powłokę i uruchomić docker exec -it sample bash
i uzyskać dostęp do kontenera.
Po uruchomieniu docker run -i -d --name sample some_image bash
kontener natychmiast się kończy. Mogę uruchomić go ponownie pod numerem docker start sample
, a następnie pozostanie w nim, więc mogę uruchomić docker exec -it sample bash
i ponownie z nim współpracować.
Jednak we wszystkich tych przypadkach ostatecznie używam -it
do interakcji z moimi kontenerami. W jakim świecie nie potrzebowałbym flagi -t
?
Cheers
II nie może dowiedzieć się, co będzie oczekiwany wynik '-i -d' – Auzias
@Auzias '-i -d' znajduje się w przykładzie, który poniżej linkuję: https://github.com/docker/docker/blob/e4cfd9b3924fae0369956b4f0e7f73a7e3b0cbf7/integration-cli/docker_cli_attach_test.go#L139 : uruchamiasz i odrywasz proces, do którego możesz dołączyć i użyć stdin, aby przekazać proces z danymi. – VonC