Docker는 컨테이너화된 어플리케이션을 생성하고 관리하는 데 사용되는 도구입니다. 이 과정에서 Dockerfile
이라는 텍스트 문서를 사용하여 컨테이너의 설정과 명령을 정의합니다. Dockerfile
내에서 주로 사용되는 두 가지 지시어는 RUN
과 CMD
입니다. 이 두 지시어의 기능과 사용 방법을 이해하는 것은 Docker 이미지를 효과적으로 구축하는 데 매우 중요합니다.
RUN 지시어
RUN
지시어는 Docker 이미지가 빌드될 때 실행되는 명령어입니다. 이 지시어는 이미지 내에서 소프트웨어 패키지를 설치하거나 설정을 변경하는 데 주로 사용됩니다. RUN
명령은 새로운 레이어를 생성하고, 해당 레이어 위에 변경사항을 적용합니다.
예시:
# Ubuntu 기반 이미지에서 Apache를 설치
FROM ubuntu
RUN apt-get update
RUN apt-get install -y apache2
이 예시에서, RUN
명령은 Ubuntu 이미지에 Apache 웹 서버를 설치하는 데 사용됩니다. 각 RUN
명령은 새로운 레이어를 생성하여 이미지에 변경사항을 추가합니다.
CMD 지시어
반면에, CMD
지시어는 Docker 컨테이너가 시작될 때 실행되는 기본 명령어를 정의합니다. CMD
는 컨테이너가 실행될 때 한 번만 사용되며, Dockerfile에는 한 개의 CMD
명령만 있어야 합니다. 만약 여러 개의 CMD
가 정의되어 있다면, 마지막 CMD
만 사용됩니다.
예시:
# Apache를 실행하는 Ubuntu 기반 이미지
FROM ubuntu
RUN apt-get update
RUN apt-get install -y apache2
CMD ["apache2ctl", "-D", "FOREGROUND"]
여기서 CMD
명령은 Apache 웹 서버가 포어그라운드 모드로 실행되도록 합니다. 이 명령은 컨테이너가 시작될 때 실행되며, 사용자가 다른 명령을 지정하지 않는 한 기본적으로 사용됩니다.
정리
RUN
: 이미지 빌드 시 실행되며, 소프트웨어 설치나 설정 변경 등에 사용됩니다. 각RUN
명령은 새로운 레이어를 생성합니다.CMD
: 컨테이너가 시작될 때 실행되는 기본 명령을 정의합니다. Dockerfile에는 하나의CMD
만 있어야 합니다.
이러한 차이점을 이해하는 것은 Docker를 사용하여 효율적이고 관리가 용이한 컨테이너를 구축하는 데 중요한 역할을 합니다. Docker의 공식 문서에서는 이러한 지시어들에 대해 더 자세한 정보를 제공합니다(Docker 공식 문서).
'About > Docker' 카테고리의 다른 글
[Docker] 도커(Docker)에서 한 번에 모든 이미지 삭제하는 방법 (1) | 2023.11.20 |
---|---|
[Docker] 볼륨 추가 시 필요 없는 특정 폴더 쉽게 제외하기 (.dockerignore) (0) | 2023.11.19 |
[Docker] Dockerfile의 COPY와 ADD 명령어 비교: 언제 어떤 명령어를 사용해야 할까? (0) | 2023.11.18 |
[Docker] Docker 컨테이너에서 호스트 머신의 로컬호스트에 접속하는 방법 (host.docker.internal) (0) | 2023.11.18 |
[Docker] Docker 호스트에서 컨테이너 IP 주소 찾는 쉬운 방법 (1) | 2023.11.15 |