[docker] docker run -it 플래그는 무엇입니까?

나는 도커로 복잡한 일을하고 있었지만, -it플래그 가 무엇을 의미 하는지 모르겠습니다 . 최근에 나는 약간 docker run혼란스러워하는 명령의 예를 발견했습니다 .

docker run -itd ubuntu:xenial /bin/bash

내 질문은 -it인스턴스화 중 컨테이너가 실행되는 경우 여기에 플래그 를 작성하는 것이 의미가 있습니다.bin/bash

문서에는 예가 있습니다.

docker run --name test -it debian

설명과 함께

-it은 Docker에게 컨테이너의 stdin에 연결된 의사 TTY를 할당하도록 지시합니다. 컨테이너에 대화 형 bash 셸을 만듭니다.

및 도움말 페이지의 -t 플래그에 대한 설명

-t, –tty 의사 TTY 할당

-it 플래그를 삭제하면

docker run -d ubuntu:xenial /bin/bash

새로 만든 컨테이너는 그렇게 많이 살지 않습니다

docker ps -a

종료 됨으로 지정됩니다.

죄송합니다. 제 질문이 아주 어리 석다면 인터넷에서 설명을 찾을 수 없습니다.



답변

-it에 대한 짧은 --interactive + --tty당신이 때 docker run이 명령 .. 그것은 용기 ,,의 바로 안쪽에 당신을 데려 갈 것이다 -d위한 짧은 --detach그냥 컨테이너를 실행하는 방법 다음 분리 그래서 기본적으로 당신이 배경 .. 용기를 실행 그것에서
편집 : 그래서 Docker 컨테이너를 -itd실행하면 -it옵션 이 실행되고 컨테이너에서 분리되므로 기본 앱을 실행하지 않아도 컨테이너가 백그라운드에서 계속 실행됩니다.


답변

docker run -it ubuntu:xenial /bin/bash컨테이너와 상호 작용할 수있는 대화 형 모드 (따라서 -it플래그) 에서 컨테이너를 시작합니다 /bin/bash. 그 말은 지금 당신은해야합니다 bash세션 내에서 할 수 있도록 용기 ls, mkdir또는 용기 내부의 bash는 명령을한다.

여기서 핵심은 “대화 형”이라는 단어입니다. 플래그를 생략하면 컨테이너는 계속 실행 /bin/bash되지만 즉시 종료됩니다. 플래그를 사용하면 컨테이너가 실행되고 /bin/bash인내심있게 입력을 기다립니다.


답변