1 minute read

컨테이너 관련 명령어

$ docker run

이미지로부터 새로운 컨테이너를 만들고 실행하는 명령어

$ docker run <이미지> 
실행, 전체 자동 수행 명령어

Alt text

$ docker run… = docker pull + docker create + docker start 로 표현이 가능하다.

$ docker run <이미지> 
위 명령어는 아래와 같이 3단계로 똑같이 실행할 수 있다.

$ docker pull hello-world
$ docker create hello-world
$ docker start -a CONT_ID
$ docker pull hello-world

Alt text

$ docker create hello-world

Alt text

$ docker start -a CONT_ID

Alt text

$ docker run -it ubuntu bash
  • Ubuntu 이미지로 컨테이너를 만들고, bash 셀에 인터렉티브 모드로 접속하겠다는 의미
  • -it
    • -i (–interactive) : 표준 입력(stdin)을 열어둠 -> 사용자 입력을 받을 수 있게함
    • -t (–tty) : 터미널을 생성해서 사용자와 대화형 환경 제공
    • 즉, -it를 사용하면 우리가 컨테이너 안에서 명령어를 입력할 수 있는 환경이 된다.
  • bash
    • bash는 컨테이너 안에서 실행할 명령어(Command)를 의미
    • bash = Bourne Again Shell : 리눅스에서 가장 흔히 쓰이는 셀
    • 이 명령어 덕분에 컨테이너를 켜자마자 bash 환경(터미널)로 바로 들어갈 수 있다.
    • Ubuntu OS를 설치하고 켰더니 바로 터미널로 접속하는 것과 같은 상황
  • 위 명령어도 아래와 같이 3단계로 나눌 수 있다.
$ docker pull ubuntu

Alt text

$ docker create -it ubuntu

Alt text

$ docker start -a CONT_ID

Alt text

컨테이너 안팎을 오가기

$ docker run -it ubuntu bash

먼저 위 명령어를 작성하고 Enter를 누른다. 그럼 아래와 같이 컨테이너 안에서 터미널이 실행된다.

Alt text

“Ctrl + P + Q”를 누르면 현재 컨테이너를 나가게된다.(종료되는 것은 아님)

Alt text

$ docker exec -it CONT_ID bash
$ docker attach CONT_ID

$ docker ps 명령어를 통해 현재 실행 중인 컨테이너를 확인해보면 컨테이너가 종료된 것이 아니기 때문에 확인이 가능하다. 확인했다면, 아래 위 명령어 + 해당 컨테이너 ID를 복사 붙여넣기(앞자리만 써도됨)해서 컨테이너에 재진입을 할 수 있다.

Alt text

컨테이너 안에서는 exit로 빠져나오면 된다.

Alt text

컨테이너 관련 나머지 명령어

$ docker container ls
$ docker ps
$ docker container ls -a
$ docker ps -a

위 컨테이너 실행 후 아래 위 명령어를 작성하면 모든 컨테이너 상태를 확인할 수 있다. 위 두 명령어는 같은 동작을 하는 명령어이다. -a 키워드가 붙으면 종료된 컨테이너까지 모두 보여주고, -a가 없으면 현재 실행 중인 컨테이너만 나타낸다.

Alt text

$ docker stop CONT_ID
$ docker start CONT_ID
$ docker restart CONT_ID

위 명령어는 컨테이너 중지, 시작, 재시작 명령어이다.

Alt text

$ docker rm CONT_ID
$ docker rm -f CONT_ID

rm 명령어는 컨테이너 리스트를 삭제하는 명령어이다.

Alt text

하지만 실행 중인 컨테이너는 rm으로 삭제되지 않는다.

Alt text

실행 중인 컨테이너를 삭제하는 방법은 컨테이너를 중지시키고 난 뒤 삭제하거나 -f 키워드로 강제 삭제를 하는 방법이 있다.

Alt text