Docker 기본 명령어 정리

들어가기

Docker 명령어를 자꾸 까먹어서 정리하는 차원에 글을 작성한다.
Dokcer가 처음이신 분들은 subicura님의 도커 안내서 를 추천드리고 싶다. (사실 이 글도 subicura님의 도커 안내서를 요약한 것일 뿐이다.)

도커 버전확인

docker version

명령어를 입력하면 Client와 Server 정보 두개가 보인다.
Docker는 하나의 실행 파일이지만 Client와 Server 역할을 각각 할 수 있다
커맨드를 입력하면 Client가 Server로 전송하고 결과를 받아 출력해준다.

도커의 실행

docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
옵션[OPTIONS]
  • -d : detached mode 흔히 말하는 백그라운드 모드
  • -p : 호스트와 컨테이너의 포트를 연결 (포워딩)
  • -v : 호스트와 컨테이너의 디렉토리를 연결 (마운트)
  • -e : 컨테이너 내에서 사용할 환경변수 설정
  • –name : 컨테이너 이름 설정
  • –rm : 프로세스 종료시 컨테이너 자동 제거
  • -it : -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
  • –link : 컨테이너 연결 [컨테이너명:별칭]

컨테이너 목록 확인

docker ps [OPTIONS]

기본은 실행중인 컨테이너 목록만 보여줌

옵션[OPTIONS]
  • -a : 모든 컨테이너를 출력

컨테이너 중지

docker stop [OPTIONS] CONTAINER [CONTAINER...]

특별한 옵션은 없고 컨테이너 하나 또는 여러개를 중지할 수 있다. (띄어쓰기로 구분)

컨테이너 제거

docker rm [OPTIONS] CONTAINER [CONTAINER...]

종료된 컨테이너를 완전히 제거한다.

이미지 목록 확인

docker images [OPTIONS] [REPOSITORY[:TAG]]

이미지 다운로드

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull ubuntu:14.04

run 명령어를 입력시 해당 이미지가 없다면 자동으로 다운받는다.

이미지 삭제

docker rmi [OPTIONS] IMAGE [IMAGE...]

안쓰는 이미지는 삭제하는게 좋다.

컨테이너 로그 보기

docker logs [OPTIONS] CONTAINER

로그는 표준 스트림stdout, stderr를 수집한다. 즉, 실행되는 프로그램의 로그 설정을 파일에서 표준 출력으로 바꿔야 한다.

로그파일

컨테이너의 로그파일은 json방식으로 어딘가에 저장된다. 로그 파일도 많으면 용량이 커지므로 docker의 다양한 플러그인을 이용해서 특정 로그 서비스에 스트림을 전달하거나 관리해줄 수 있다.

옵션[OPTIONS]
  • –tail ${Number} : 입력한 숫자만큼의 마지막 줄을 보여준다.
  • -f : 실시간으로 로그가 생성되는 걸 확인

컨테이너 명령어 실행

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -it ubuntu /bin/bash
docker exec -it mysql mysql -uroot

실행중인 컨테이너에 파일을 실행하고 싶을 때 사용
주로 /bin/bash을 띄움..

옵션[OPTIONS]
  • -d : 명령을 백그라운드로 실행
  • -i : 표준 입력(stdio)을 활성화하여 컨테이너와 연결되어 있지 않더라도 유지시켜준다
  • -t : TTY모드로 Bash를 사용하려면 필수 옵션이다.
  • -it : -i와 -d를 합친 것

Docker Compose

모든 작업을 docker 명령어로 해도 되지만 컨테이너의 조합이 많아지고 설정이 여러가지 추가되면 명령어가 금방 복잡해질 것이다.

복잡한 설정을 쉽게 관리하기 위해 YAML방식의 설정파일을 이용한 Docker Compose를 지원한다.

자세한 것은 찾아보기..

참고

comments powered by Disqus