[Docker 기본 명령어] 3. docker run과 -i, -t, --name, -d, --rm 옵션 사용해보기
반갑습니다!
이번 포스트에서는 $ docker run 명령어부터 살펴보겠습니다 ^^
지난 시간에는 $ docker create [이미지 이름] → $ docker start [컨테이너 이름]
의 순서를 가졌었는데요
docker run은 이미지를 선택해서 컨테이너를 생성함과 동시에 실행을 한다고 보시면 되겠습니다 ^^
docker run에는 다양한 옵션이 있습니다
-i : 컨테이너 입력(STDIN)을 열어놓는 옵션(주로 -t 옵션과 함께 쓰임)
-t : 가상 터미널(tty)을 할당하는 옵션(주로 -i 옵션과 함께 쓰임)
--name : 컨테이너 이름을 설정하는 옵션
-d : 컨테이너를 백그라운드에서 실행하는 옵션
--rm : 컨테이너 종료시 컨테이너를 자동으로 삭제하는 옵션
-p : 호스트와 컨테이너 포트를 연결하는 옵션
-v : 호스트와 컨테이너 디렉토리를 연결하는 옵션
$ docker run -it ubuntu 명령어를 실행하니
해당 컨테이너의 응용 프로그램에 입력을 할 수 있도록 프롬프트가 바뀐 것을 확인할 수 있겠습니다 ^^
$ ls 명령어를 입력하니 현재 운영체제가 아니라,
컨테이너에서 실행되고 있는 프로그램에 대해서 명령어가 동작했습니다 ^^
$ exit 명령어를 입력하면 종료할 수 있습니다 ^^
아까와 동일한 명령어입니다 ^^
이번에는 --name 옵션을 추가해서 임의의 이름으로 지정하여 실행시켰습니다 !
방금 전과 마찬가지로 프롬프트 기호가 바뀌어서,
현재의 운영체제가 아니라
실행중인 컨테이너의 프로그램에 대해서 입력을 넣을 수 있도록 되었습니다 ^^
컨테이너를 여러개 실행하다 보면 exit를 입력해서 나왔는데도
컨테이너는 계속 남아서 메모리를 차지하고 있습니다
컨테이너 실행이 종료되면 자동으로 해당 컨테이너가 삭제되도록 하는 옵션은
-rm입니다 ^^
해당 옵션을 이용하여 컨테이너를 실행한 모습입니다!
이번에는 foreground 실행이 아니라 background 실행입니다
-d 옵션을 추가해서 해당 컨테이너를 생성해 실행시켰습니다
컨테이너가 생성 되었고, 또한 정상적으로 실행 중이므로
이제는 $ docker ps 명령어를 입력하면 목록에 정상적으로 조회가 됩니다 ^^!
STATUS를 살펴보면 Up인 것을 볼 수 있겠습니다
Exited는 종료 된 상태,
Up은 현재 실행 중인 상태를 의미합니다 ^^
그럼 백그라운드 실행 중인 컨테이너에 어떻게 접근할 수 있을까요?
$ docker attach [컨테이너ID 또는 이름] 명령어를 이용하시면
아까와 마찬가지로 컨테이너 실행중인 프로그램에 입력을 할 수 있도록
프롬프트가 바뀐 것을 확인할 수 있겠습니다 ^^!