Skip to content

Usage

설명 및 구조#

명령어 가이드#

  • FROM : 베이스 도커 이미지를 지정합니다. 보통 OS 나 프로그래밍 언어 이미지를 지정합니다. docker hub에서 찾아 볼 수 있습니다.
  • RUN : 쉘 커맨드를 도커 이미지에서 실행합니다.
  • CMD : 쉘 커맨드를 도커 이미지에서 실행합니다. 단, 이 커맨드는 도커 컨테이너가 시작될 때 실행합니다
  • LABEL : KEY-VALUE 의 LABEL을 생성합니다. docker inspect 명령어로 생성한 LABEL을 확인할 수 있습니다.
  • EXPOSE : 도커 컨테이너 외부에 노출할 포트를 지정합니다, 단, 컨테이너에서 포트를 자동으로 open 하지 않기 때문에 컨테이너 실행 시 지정된 포트를 열어 주어야 합니다.
  • ENV : 환경 변수를 지정할때 사용됩니다.
  • ADD : 파일과 디렉토리를 호스트에서 지정한 도커이미지 디렉토리 안으로 복사 합니다. 만약 디렉토리가 없다면 새로 생성해서 복사합니다. 디렉토리를 ADD하려면 끝이 “/”로 끝나야 합니다. 파일 이름과 디렉토리 이외에도 URL이 될수도 있습니다. ADD 할려고 하는 파일이 tar 압축파일 이면 docker가 자동으로 압축을 풀어서 ADD 합니다. ADD 할려고 하는 파일이나 디렉토리와 같은 이름의 파일이나 디렉토리가 벌써 image 상에 존재 한다면 덮어 씌우지 않습니다.

  • COPY : ADD와 기본적으로 동일하나 URL지정이 불가하며 압축파일을 자동으로 풀어주지 않는다. ENTRYPOINT : 도커 이미지가 실행될 때 기본 커맨드를 지정합니다. CMD와의 차이점은 CMD 는 오버라이드가 가능하지만, ENTRYPOINT는 오버라이드 할 수 없습니다. docker run 커맨드로 추가하는 커맨드들은 ENTRYPOINT instruction에 지정된 커맨드 옵션으로 추가됩니다.

  • VOLUME : 호스트의 폴더를 도커 컨테이너에 연결 시킬 수 있습니다. 즉, 도커 내부에서 호스트 컴퓨터에서 지정한 곳의 파일을 읽거나 쓰거나 할 수 있습니다. 보통 로그 저장에 사용됩니다. USER : 도커 이미지를 실행할 user를 지정해 줍니다. user뿐 아니라 UID/GID도 사용 가능합니다. WORKDIR : 현재 작업폴더를 지정합니다. 리눅스 cd 커맨드를 떠올리면 됩니다. ARG : docker build 커맨드로 docker image를 빌드할 때 설정할 수 있는 옵션들을 지정해 줍니다. 계정비밀번호 등 민감한 정보는 이렇게 지정하지 않는 것을 추천합니다. 이유는 그대로 docker image에 지정한 내용이 남아 있기 때문입니다.

  • SHELL : 디폴트로 지정되어 있는 shell 타입을 바꿀 수 있게 해줍니다. 디폴트 쉘은 [“/bin/sh”, “-c”] 입니다 ONBUILD : 도커 이미지가 다른 빌드의 기반으로 사용될 때 나중에 실행될 트리거 명령어를 도커 이미지에 추가합니다. 즉, docker build로 생성한 이미지가 아닌, 그 이미지를 기반으로 다른 이미지를 생성을 했을 때 사용되는 커맨드 입니다.

  • STOPSIGNAL : 컨테이너를 종료하기 위해 컨테이너로 보낼 시스템 호출 신호를 설정합니다. docker container stop 명령을 입력하면 도커 데몬이 컨테이너에게 signal을 보내 중지 하는데, 기본적으로 STOPSIGNAL을 명시하지 않을 경우 SIGTERM을 사용 하게 됩니다. 즉, container stop 할 때 SIGNAL을 지정할 수 있습니다 docker container stop 실행 시 SIGTERM signal을 받은 컨테이너가 프로세스를 정상적으로 종료할 수 있을때 까지 기다리게 되는데, 지정된 시간 (기본 10초, 사용자 지정 가능)동안 종료가 되지 않으면 SIGKILL을 전송합니다.

  • HEALTHCHECK : 컨테이너의 HEALTHCHECK를 사용하여 컨테이너의 프로세스 상태를 체크할 수 있습니다. HEALTHCHECK [OPTIONS] CMD command : 컨테이너 내부에서 명령 실행하여 컨테이너 상태를 확인합니다. HEALTHCHECK NONE : 베이스 이미지에서 상속된 상태 확인을 비활성화합니다