[Docker] Docker2 - 기본 명령어 실습
컨테이너 관련 명령어
$ docker run
이미지로부터 새로운 컨테이너를 만들고 실행하는 명령어
$ docker run <이미지>
실행, 전체 자동 수행 명령어
$ 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
$ docker create hello-world
$ docker start -a CONT_ID
$ 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
$ docker create -it ubuntu
$ docker start -a CONT_ID
컨테이너 안팎을 오가기
$ docker run -it ubuntu bash
먼저 위 명령어를 작성하고 Enter를 누른다. 그럼 아래와 같이 컨테이너 안에서 터미널이 실행된다.
“Ctrl + P + Q”를 누르면 현재 컨테이너를 나가게된다.(종료되는 것은 아님)
$ docker exec -it CONT_ID bash
$ docker attach CONT_ID
$ docker ps 명령어를 통해 현재 실행 중인 컨테이너를 확인해보면 컨테이너가 종료된 것이 아니기 때문에 확인이 가능하다. 확인했다면, 아래 위 명령어 + 해당 컨테이너 ID를 복사 붙여넣기(앞자리만 써도됨)해서 컨테이너에 재진입을 할 수 있다.
컨테이너 안에서는 exit로 빠져나오면 된다.
컨테이너 관련 나머지 명령어
$ docker container ls
$ docker ps
$ docker container ls -a
$ docker ps -a
위 컨테이너 실행 후 아래 위 명령어를 작성하면 모든 컨테이너 상태를 확인할 수 있다. 위 두 명령어는 같은 동작을 하는 명령어이다. -a 키워드가 붙으면 종료된 컨테이너까지 모두 보여주고, -a가 없으면 현재 실행 중인 컨테이너만 나타낸다.
$ docker stop CONT_ID
$ docker start CONT_ID
$ docker restart CONT_ID
위 명령어는 컨테이너 중지, 시작, 재시작 명령어이다.
$ docker rm CONT_ID
$ docker rm -f CONT_ID
rm 명령어는 컨테이너 리스트를 삭제하는 명령어이다.
하지만 실행 중인 컨테이너는 rm으로 삭제되지 않는다.
실행 중인 컨테이너를 삭제하는 방법은 컨테이너를 중지시키고 난 뒤 삭제하거나 -f 키워드로 강제 삭제를 하는 방법이 있다.