본문 바로가기

dockerfile

(12)
[Docker] Dockerfile에서 RUN과 CMD의 차이점 Docker는 컨테이너화된 어플리케이션을 생성하고 관리하는 데 사용되는 도구입니다. 이 과정에서 Dockerfile이라는 텍스트 문서를 사용하여 컨테이너의 설정과 명령을 정의합니다. Dockerfile 내에서 주로 사용되는 두 가지 지시어는 RUN과 CMD 입니다. 이 두 지시어의 기능과 사용 방법을 이해하는 것은 Docker 이미지를 효과적으로 구축하는 데 매우 중요합니다. RUN 지시어 RUN 지시어는 Docker 이미지가 빌드될 때 실행되는 명령어입니다. 이 지시어는 이미지 내에서 소프트웨어 패키지를 설치하거나 설정을 변경하는 데 주로 사용됩니다. RUN 명령은 새로운 레이어를 생성하고, 해당 레이어 위에 변경사항을 적용합니다. 예시: # Ubuntu 기반 이미지에서 Apache를 설치 FROM u..
[Docker] Dockerfile의 COPY와 ADD 명령어 비교: 언제 어떤 명령어를 사용해야 할까? Docker 이미지를 구축할 때 Dockerfile의 COPY와 ADD 명령어는 파일과 디렉토리를 이미지로 복사하는 데 사용됩니다. 이 글에서는 이 두 명령어의 차이점과 각각의 사용 사례를 살펴보겠습니다. >공식문서 COPY 명령어 COPY 명령어는 Docker 호스트의 파일이나 디렉토리를 Docker 이미지로 복사하는 데 사용됩니다. 이 명령어는 로컬 파일 시스템에서만 작동하며, URL이나 다른 원격 소스에서 직접 파일을 복사할 수는 없습니다. COPY 사용 예시 # Dockerfile COPY ./local_directory /container_directory 이 예시에서 local_directory는 호스트 시스템의 디렉토리이며, /container_directory는 대상 이미지 내의 디렉토리입..
[Docker] Docker 컨테이너 내에서 cron job 실행하는 방법 Docker 컨테이너 내에서 cron job 실행하는 방법 이 글에서는 Docker 컨테이너 내에서 cron job을 실행하는 방법에 대해 알아보겠습니다. 방법 Docker 컨테이너 내에서 cron job을 실행하는 방법은 크게 두 가지로 나뉩니다. 1. Dockerfile에서 cron 설정하기 Dockerfile에 cron 설정을 추가하여 이미지를 빌드하는 방법입니다. 이 방법은 이미지를 빌드할 때 cron job을 설정하여, 컨테이너가 시작될 때 cron이 실행되도록 할 수 있습니다. 다음은 Dockerfile에서 cron 설정 예시입니다. 1 2 3 4 5 FROM ubuntu RUN apt-get update && apt-get install -y cron COPY cronfile /etc/cro..
[Docker] Docker 빌드 컨텍스트 외부 파일 포함 방법 Docker 빌드 컨텍스트 외부 파일 포함 방법 Docker 빌드 컨텍스트란? Docker는 컨테이너 기반 가상화 기술을 사용하는 소프트웨어입니다. Docker를 사용하면 이미지를 만들고 이를 기반으로 컨테이너를 실행할 수 있습니다. Docker 이미지는 Dockerfile이라는 파일에 정의된 내용에 따라 빌드됩니다. Dockerfile은 Docker 이미지를 빌드하기 위한 스크립트 파일입니다. 이 파일 안에는 Docker 이미지를 빌드하는 데 필요한 모든 명령어와 파일이 포함되어 있습니다. Dockerfile을 빌드할 때, Docker는 현재 디렉토리를 빌드 컨텍스트로 사용합니다. 빌드 컨텍스트란 Dockerfile을 빌드하기 위해 필요한 파일들이 위치한 디렉토리를 의미합니다. 하지만 때로는 Docke..
[Docker] Dockerfile ENV 명령어(환경변수 설정) Dockerfile 안에서 환경변수를 설정하고 싶을 때는 ENV 명령어를 사용합니다. ENV 명령어는 다음 두 서식 중 하나로 기술합니다. • Key value 형 • Key=value 형 예시) 1 2 ENV [key] [value] ENV [key]=[value] 1. key value 형으로 지정하는 경우 단일 환경변수에 하나의 값을 설정합니다. 첫 번째 공백 앞을 key로 설정하면 그 이후는 모두 문자열로 취급합니다. 공백이나 따옴표와 같은 문자를 포함한 것도 문자열로 취급합니다. 키명 값 NAME "Kim" NICKNAME JingO AGE 27 예를들어 위와 같이 설정하고 싶은 경우는 다음과 같이 기술합니다. 1 2 3 ENV NAME "Jihwan" ENV NICKNAME JingO ENV ..
[Docker] Dockerfile의 HEALTHCHECK를 이용한 컨테이너 정상 동작 점검(nginx) 다음 도서를 참고하여 작성하였습니다. www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298 완벽한 IT 인프라 구축을 위한 Docker 컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서. 제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행 www.aladin.co.kr HEALTHCHECK Docker에서 컨테이너 안의 프로세스가 정상적으로 작동하고 있는지를 체크하고 싶을 때는 HEALTHCHECK 명령어를 사용합니다. 구문은 다음과 같습니다. HEALTHCHECK [옵션] CMD 실행할 명령 지정할 수 있는 옵션 옵션 설명 Default --interval=n 헬스 체..
[Docker] Dockerfile 컨테이너 시스템 콜 시그널 설정(node.js 컨테이너) 다음 도서를 참고하여 작성하였습니다. www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298 완벽한 IT 인프라 구축을 위한 Docker 컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서. 제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행 www.aladin.co.kr STOPSIGNAL 컨테이너를 종료할 때에 송신하는 시그널을 설정하려면 STOPSIGNAL 명령을 사용합니다 STOPSIGNAL 명령의 구문은 다음과 같습니다. STOPSIGNAL [시그널] STOPSIGNAL 명령에는 시그널 번호(9 등) 또는 시그널명(SIGKILL 등)을 지정할 수 있습니다. Dock..
[Docker] Dockerfile ONBUILD 명령 다음 책을 참고하여 작성하였습니다. www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298 완벽한 IT 인프라 구축을 위한 Docker 컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서. 제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행 www.aladin.co.kr ONBUILD 명령은 그 다음 빌드에서 실행할 명령을 이미지 안에 설정하기 위한 명령입니다. 예를 들어 Dockerfile에 ONBUILD 명령을 사용하여 어떤 명령을 실행하도록 설정하여 빌드하고 이미지를 작성합니다. 그리고 그 이미지 다른 Dockerfile에서 베이스 이미지로 설정하여 빌드했을 떄 ONB..
[Docker] Dockerfile과 이미지 레이어에 대하여 다음 도서를 참고하여 작성하였습니다. www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298 완벽한 IT 인프라 구축을 위한 Docker 컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서. 제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행 www.aladin.co.kr Dockerfile을 빌드하면 기술된 명령마다 내부 이미지가 하나씩 작성됩니다. 그래서 Dockerfile을 줄이는 몇 가지 방법이 고안되어 있습니다. RUN 명령어를 여러 개 지정하는 경우 다음 예시에서는 4개의 레이어가 생성됩니다. RUN yum -y install httpd RUN yum -y ins..
[Docker] 데몬 실행 (CMD 명령) 다음 도서를 참고하여 작성하였습니다. www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298 완벽한 IT 인프라 구축을 위한 Docker 컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서. 제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행 www.aladin.co.kr Dockerfile에서 RUN 명령은 이미지를 작성하기 위해 실행하는 명령을 기술하지만, 이미지를 바탕으로 생성된 컨테이너 안에서 명령을 실행하려면 CMD 명령을 사용합니다. 또한 Dockerfile에는 하나의 CMD 명령을 기술할 수 있습니다. 만일 여러 개를 지정하면 마지막 명령만 유효합니다. 예를 들..