프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

docker attach

docker attach CONTAINER

 

 option

--no-stdin : 표준 입력은 컨테이너에 연결하지 않습니다. 컨테이너 표준 출력 및 오류 스트림만 연결

 

Local 표준 입력, 출력 및 오류 스트림을 실행 중인 컨테이너에 연결.

 

작동 방식

 

 

ubnutu 이미지인 mzc-ct01에 접속해보자.

 

 

 

attach로 컨테이너  진입한 상태에서는, 빠져 나오기 위해서는 ctrl+pq 키 조합을 사용.

exit 명령어로 입력할 경우 컨테이너 자체가 종료됨.

종료가 되어버리는 것에서 유추 할 수 있듯이, 실행 중인 컨테이너에 직접 들어가 명령어를 실행 (내부 접근)한다는 것이 된다. -> 여기서 exit은 container가 자신을 종료하라는 의미가 되어 종료횐다.

 

 

 

 

docker run 명령어의 -it

docker run 명령어의 `-it` 옵션은 -i 와 -t 두 가지 옵션을 결합한 것이다.

 

1. `-i` 옵션은 "interactive"를 의미합니다. 이는 컨테이너와 상호 작용할 수 있는 인터랙티브 모드를 활성화합니다. 이 모드에서는 컨테이너의 표준 입력(stdin)이 열려 있으며 사용자가 명령어를 입력하고 컨테이너의 상태를 확인할 수 있습니다.

 

2. `-t` 옵션은 "pseudo-TTY"를 의미합니다. 이는 가상의 TTY(TeleTYpewriter)를 컨테이너에 연결합니다. TTY는 사용자와 컴퓨터 사이의 텍스트 기반 상호 작용을 가능하게 하는 기능으로, 터미널과 유사한 환경을 제공합니다.

 

따라서 `-it` 옵션은 "인터랙티브 모드로 실행되며 가상의 TTY를 사용하여 컨테이너에 연결한다"는 것을 의미합니다. 이 옵션을 사용하면 컨테이너에 들어가서 직접 명령어를 실행하고 상호 작용할 수 있습니다.

 

 

docker run -it --name contianer_name  image_name 

와 같은 명령어는 실행과 함께 컨테이너의 인터랙티브 모드로 실행되며 가상의 TTY를 사용하여 컨테이너에 연결된다.

이때의 접속하는 프로세스는 container이기 때문에 exit으로 나가면 컨테이너가 종료된다.

 

 

 

docker exec

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

실행중인 컨테이너에 command를 이용하여 새로운 프로세스를 생성 후 접속한다.

실행 중인 컨테이너에 명령어를 전달(외부 -> 내부)

 

 

 

 

 

/bin/bash는 리눅스 시스템에서 사용되는 Bourne Again Shell (bash)의 경로다. 이것은 셸(Shell)을 실행하는 명령어로, 일반적으로 사용자와 상호작용할 때 터미널 환경을 제공한다.

Docker run에서 -it을 주지 않더라도, exec는 새로운 프로세스를 -it으로 생성해 접속하면 input 값을 tty로 전달할 수 있다.

이는 새로운 프로세스를 생성해서 들어가기 때문에 exit으로 종료해서 컨테이너가 종료되지 않고, 생성한 프로세스가 종료된다.

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함