
RUN은 Docker 이미지를 생성할 때 실행할 명령어를 정의하는 데 사용된다. 이 명령어는 이미지 빌드 과정에서 실행되며, 컨테이너 실행 시에는 영향을 미치지 않는다.
RUN apt-get -y install nginxRUN ["/bin/bash", "-c", "apt-get -y install nginx"]CMD와 ENTRYPOINT는 컨테이너가 실행될 때 수행할 명령어를 지정한다.
RUN: 이미지 빌드 과정에서 실행됨CMD 및 ENTRYPOINT: 컨테이너가 실행될 때 수행됨CMD ["nginx", "-g", "daemon off;"]ENTRYPOINT ["/usr/sbin/nginx"]ENTRYPOINT ["/bin/sh", "-c"]
CMD ["echo Hello, World!"]위 설정에서는 ENTRYPOINT가 sh을 실행하고, CMD가 그 뒤에 echo Hello, World!를 전달한다.ONBUILD는 현재 이미지가 다른 Dockerfile에서 베이스 이미지로 사용될 때 실행할 명령어를 정의한다.
ONBUILD ADD website.tar /var/www/html
이 이미지를 기반으로 새 이미지를 빌드할 때 website.tar가 자동으로 /var/www/html에 추가된다.
WORKDIR은 Dockerfile 내에서 작업 디렉토리를 설정하는 명령어다.
WORKDIR /app
이제 RUN, CMD, ENTRYPOINT 등의 명령어가 /app 디렉토리를 기준으로 실행된다.
USER는 컨테이너에서 실행할 명령어를 수행할 계정을 지정하는 명령어다.
USER nonroot
root 권한으로 실행되므로, 보안 강화를 위해 USER를 지정하는 것이 권장됨.RUN, CMD, ENTRYPOINT에서 실행되는 모든 명령어가 해당 사용자 권한으로 실행됨.