docker dit 옵션과 attach
다음과 같이Docker hub에서 ubuntu 이미지를 받는다.
- docker run
: 도커 허브로부터 이미지를 가져와 컨테이너를 생성하고 실행한다.- -d: 백그라운드 모드로 컨테이너를 실행한다.
- --name: 컨테이너 이름을 설정한다.
그리고 생성된 이미지를 확인해보면 다음과 같다.
- 'myubuntu'라는 이름으로 이미지가 생성되길 바랬지만 'myubuntu'가 아닌 'ubuntu'라는 이름으로 이미지가 생성되었다.
추가로 실행중인 프로세스를 살펴봐도 ubuntu가 존재하지 않는다.
- 해당 컨테이너에 'ubuntu'라는 OS만 설치되어 있기 때문이다.
- 내부에서 계속해서 동작중인 프로그램이 없어 실행되자 마자 종료된다.
docker dit
현재 원하는 건 ubuntu 컨테이너가 계속해서 실행되는 것이다.
이때 사용할 수 있는 옵션이 docker run 명령어의 '-dit' 옵션이다.
- -d (또는 --detach)
: docker run 명령어에서 사용되는 옵션으로, 컨테이너를 백그라운드 모드로 실행하는 데 사용된다.- 컨테이너를 백그라운드에서 실행하면 컨테이너가 호스트 터미널에 연결되지 않고 실행된다.
- 컨테이너의 로그를 실시간으로 확인할 필요가 없을 때 유용한다.
- -I (또는 --interactive)
: 표준 입력(stdin)을 컨테이너로 연결한다.- 이 옵션을 사용하면 컨테이너 내부에서 키보드 입력을 받을 수 있다.
- -t (또는 --tty)
: 의사 터미널(pseduo-TTY)을 할당한다.- 이 옵션을 사용하면 컨테이너 내부에서 터미널과 같은 인터페이스를 사용할 수 있다.
- 특수 키를 사용 가능하도록 한다.
- 즉, --it 옵션을 사용하면 컨테이너를 실행한 후 터미널과 같은 인터페이스를 가진 상호 작용 환경에 진입할 수 있다.
- 이는 컨테이너 내부에서 명령어를 실행하거나 애플리케이션을 디버깅하는 등의 작업에 유용하다.
docker run -dit 실행결과
- 컨테이너가 종료되지 않고 실행되는 것을 확인할 수 있다.
- 이때 컨테이너의 이름은 'myubuntu'이다.
- 이름은 도커 컴포즈 파일에서 서비스를 정의할 때, 각 서비스에 대해 컨테이너 이름을 지정에 사용될 수 있다.
- /bin/bash
- 해당 프로세스의 COMMAND로 "/bin/bash"가 실행중인 것을 확인할 수 있다.
- 이 명령어가 실행중이기 때문에 컨테이너는 종료되지 않고 계속 실행된다.
- 이제 우리 운영체제에서 'bash'라는 프로그램을 사용해 해당 컨테이너에 명령을 내릴 수 있다.
docker attach
docker attach
docker attach 컨테이너ID
: 실행 중인 도커 컨테이너에 연결해 컨테이너의 표준 입력(stdin), 출력(stdout), 오류(stderr) 스트림에 대한 연결을 설정하는 데 사용된다.
- 이를 통해 컨테이너 내부에서 명령어를 실행하거나, 애플리케이션의 로그를 실시간으로 확인할 수 있다.
- docker attach 명령어를 사용하면 해당 컨테이너의 터미널 세션에 연결된다.
- 이는 컨테이너가 실행중인 상태에서 터미널과 같은 상호 작용 환경을 제공한다.
'Docker' 카테고리의 다른 글
docker volumn 옵션으로 폴더 연결하기 (0) | 2023.06.09 |
---|---|
docker exec 명령어 변경 (0) | 2023.05.29 |
컨테이너 포트포워딩 및 데몬으로 실행 (0) | 2023.05.25 |
도커 컨테이너 실행하기 (0) | 2023.05.24 |
도커 이미지 삭제하기 (0) | 2023.05.24 |