[docker] 2.2 도커 컨테이너 사용법

! Linux Ubuntu 16.04.7 환경에서 진행했음 !

컨테이너 생성


관리자 권한에서 실행한다. → sudo su

# docker run -i -t ubuntu:16.04

docker run은 도커 컨테이너를 생성하고 실행하는 역할이다.

-i 옵션은 컨테이너와 상호(interactive) 입출력을 가능하게 한다.

-t 옵션은 tty를 활성화 해서 bash shell을 사용하도록 컨테이너를 설정한다.

-i -t 중 하나라도 사용하지 않으면 shell을 정상적으로 사용할 수 없다.

# docker create -i -t --name mycentos centos:7

위와 같이 —name 옵션으로 해당 컨테이너 이름을 설정할 수 있다.

create는 run과 달리 컨테이너 실행을 하지는 않는다.

컨테이너 실행 & 종료


# docker start [컨테이너 이름]
# docker attach [컨테이너 이름]

create로 생성만한 경우이거나 따로 도커를 켜야 하는 경우 start와 attach 명령어를 통해 컨테이너를 시작하고 내부로 들어갈 수 있다.

컨테이너를 대상으로 하는 명령어는 컨테이너 이름 대신 ID를 사용할 수 있다. 2~3자만 입력해도 되는데 앞부분 2~3자가 같은 컨테이너가 존재하는 경우 오류를 발생한다.

# exit
or ctrl + D

exit 커맨드 혹은 ctrl + D로 컨테이너를 정지시키며 빠져나올 수 있다.

ctrl + P,Q

컨테이너를 정지시키지 않고 빠져나올 수 있다.

# docker stop [컨테이너 이름]

정지시키지 않고 빠져나온 컨테이너를 docker stop을 통해 정지시킨다.

컨테이너 목록 확인


# docker ps
# docker ps -a

정지되지 않은 컨테이너만 출력한다.

-a 옵션을 정지된 컨테이너를 포함한 모든 컨테이너를 출력한다.

  • container id: 컨테이너에게 자동으로 할당되는 고유한 id
  • image: 컨테이너를 생성할 떄 사용된 이미지의 이름
  • command: 컨테이너가 시작될 때 실행된 명령어
  • created: 컨테이너가 생성되고 난 뒤 흐른 시간
  • status: 컨테이너의 상태를 나타내며, 실행중일때는 Up, 종료된 상태는 Exited, 일시 중지는 Paused
  • port: –아직 공부하지 않음–
  • names: 컨테이너의 고유한 이름. —name 옵션을 넣지 않았다면 도커 엔진이 임의로 이름을 설정

      # docker rename [기존 이름] [바꿀 이름] 
    

    위와 같이 이름을 변경할 수 있음

컨테이너 삭제


한번 삭제한 컨테이너는 복구할 수 없으므로 신중하게 결정하기

# docker rm [컨테이너 이름]

실행중인 컨테이너는 지울 수 없다.

앞 서 배운 docker stop이후 rm으로 지우는 방법이 있고 아래와 같이 -f 옵션을 사용하는 방법이 있다.

# docker rm -f [컨테이너 이름]

모든 컨테이너를 삭제하는 명령어도 있다. -q 옵션은 컨테이너 ID만 출력하도록 한다.

# docker container prune

# docker stop $(docker ps -a -q)
# docker rm $(docker ps -a -q)

컨테이너를 외부에 노출


아직 공부하지 않음