도커 기본 명령어

김하영·2021년 2월 18일
0
post-custom-banner

DockerImage / Container 기본 명령어

도커에서 이미지를 받고 컨테이너를 생성하고 삭제 할 때, 자주쓰는 기본 명령어이다.

  • 컨테이너 실행하기 (run)

컨테이너를 실행하는 명령어는 다음과 같다.

docker run [OPTIONS] IMAGE[:TAG|@DIGEST][COMMAND] [ARG...]

다음은 자주 사용하는 옵션이다.

  • 컨테이너 목록 확인하기 (ps)

docker ps [OPTIONS]

  • 컨테이너 중지하기 (stop)

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

도커 ID의 전체 길이는 64자리이다. 하지만 명령어의 인자로 전달할 때는 전부 입력하지 않아도 된다. 예를 들어 ID가 abcdefgh…라면 abcd만 입력하거나 앞부분이 겹치지 않는다면 1-2자만 입력한다.

  • 컨테이너 제거하기 (rm)

종료된 컨테이너를 완전히 제거하는 명령어는 다음과 같다.

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

중지된 컨테이너 ID를 가져와서 한번에 삭제 docker rm -v $(docker ps -a -q -f status=exited)

  • 이미지 목록 확인하기 (images)

docker images [OPTIONS]REPOSITORY[:TAG]]

  • 이미지 다운로드하기 (pull)

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

  • 이미지 삭제하기 (rmi)

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

images 명령어를 통해 얻은 이미지 목록에서 이미지 ID를 입력하면 삭제가 된다. 단, 컨테이너가 실행중인 이미지는 삭제 되지 않는다. 컨테이너는 이미지들의 레이어를 기반으로 실행 중이므로 삭제할 수 없다.

  • 컨테이너 로그 보기 (logs)

컨테이너가 정상적으로 동작 하는지 확인하는 좋은 방법은 로그를 확인한다.

docker logs [OPTIONS] CONTAINER

  • 컨테이너 명령어 실행하기 (exec)

실행중인 컨테이너에 들어가거나 컨테이너의 파일을 실행한다.

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

run은 새로 컨테이너를 만들어서 실행하고 exec은 실행중인 컨테이너에 명령어로 실행한다.

DockerFile 기본 명령어

  • FROM

​베이스 이미지를 지정합니다. 반드시 지정해야 하며 어떤 이미지도 베이스 이미지가 될 수 있습니다. tag는​ 될 수 있으면 기본값보다 구체적인 버전(16.04등)을 지정하는 것이 좋습니다. 이미 만들어진 다양한 베이스 이미지는 Docker hub 에서 확인할 수 있습니다.

  • MAINTAINER

​Dockerfile을 관리하는 사람의 이름 또는 이메일 정보를 적습니다. 빌드에 딱히 영향을 주지는 않습니다.

  • COPY

​파일이나 디렉토리를 이미지로 복사합니다. 일반적으로 소스를 복사하는 데 사용합니다.​ target디렉토리가 없다면 자동으로 생성합니다.

  • ADD

​COPY명령어와 매우 유사하나 몇가지 추가 기능이 있습니다. src에 파일 대신 URL을 입력할 수 있고​ src에 압축 파일을 입력하는 경우 자동으로 압축을 해제 하면서 복사됩니다.

  • RUN

​가장 많이 사용하는 구문입니다. 명령어를 그대로 실행합니다. 내부적으로 /bin/sh -c 뒤에 명령어를​ 실행하는 방식입니다.

  • CMD

​도커 컨테이너가 실행되었을 때 실행되는 명령어를 정의합니다. 빌드할 때는 실행되지 않으며 여러 개의 CMD가​ 존재할 경우 가장 마지막 CMD만 실행됩니다. 한꺼번에 여러 개의 프로그램을 실행하고 싶은 경우에는 run.sh​ 파일을 작성하여 데몬으로 실행하거나 supervisord, forego와 같은 여러 개의 프로그램을 실행하는 프로그램을​ 사용합니다.

  • WORKDIR

​ RUN, CMD, ADD, COPY등이 이루어질 기본 디렉토리를 설정합니다. 각 명령어의 현재 디렉토리는 한 줄마다​ 초기화되기 때문에 RUN cd /path를 하더라도 다음 명령어에선 위치가 초기화 됩니다. 같은 디렉토리에서​ 계속 작업하기 위해서 WORKDIR을 사용합니다

  • EXPOSE

​ 도커 컨테이너가 실행되었을 때 요청을 기다리고 있는(Listen) 포트를 지정합니다. 여러개의 포트를 지정할 수​ 있습니다.

  • VOLUME

​ 컨테이너 외부에 파일시스템을 마운트 할 때 사용합니다. 반드시 지정하지 않아도 마운트 할 수 있지만,​ 기본적으로 지정하는 것이 좋습니다.

  • ENV

​컨테이너에서 사용할 환경변수를 지정합니다. 컨테이너를 실행할 때 -e옵션을 사용하면 기존 값을 오버라이딩​ 하게 됩니다.

profile
Back-end Developer
post-custom-banner

0개의 댓글