Docker에서 빌드 및 실행 명령 결합

Marion Paul Kenneth Mendoza 2023년6월20일
  1. docker builddocker run 명령의 목적
  2. 이중 앰퍼샌드 연산자(&&)를 사용하여 Docker 명령 결합
  3. 명령 대체를 사용하여 Docker 명령 결합
  4. 결론
Docker에서 빌드 및 실행 명령 결합

Dockerfile을 사용하여 컨테이너 생성을 자동화하는 경우 일반적으로 docker buildrun 명령을 사용합니다. 그러나 일반적으로 단 한 번의 실행으로 대부분의 명령을 결합하여 로컬 이미지 리포지토리를 정리합니다.

이 기사에서는 docker buildrun과 같은 명령을 한 줄로 결합하는 방법에 대해 설명합니다.

docker builddocker run 명령의 목적

docker builddocker run 명령을 함께 사용하면 여러 시나리오에서 도움이 될 수 있습니다. 예를 들어 새 애플리케이션을 개발 중이고 신속하게 테스트하려는 경우 이러한 명령을 사용하여 컨테이너에서 빌드하고 실행할 수 있습니다.

이렇게 하면 시간을 절약하고 응용 프로그램을 더 쉽게 테스트할 수 있습니다.

docker build 명령은 Dockerfile의 지침을 읽고 이를 사용하여 Docker 이미지를 만듭니다. Dockerfile을 이미 빌드한 경우 docker run -it 명령을 사용하여 이미지를 실행할 수 있습니다.

이 명령은 이미지에서 새 컨테이너를 만들고 대화형 모드에서 실행합니다.

이 모드는 컨테이너와 상호 작용하고 내부에서 명령을 실행할 수 있음을 의미합니다. 이것들을 개별적으로 실행할 수 있지만 한 줄로 실행할 수 있는 몇 가지 방법이 있습니다.

이중 앰퍼샌드 연산자(&&)를 사용하여 Docker 명령 결합

docker builddocker run -it 명령을 결합하는 한 가지 방법은 docker run 명령과 함께 --rm 플래그를 사용하는 것입니다. 이 플래그는 컨테이너가 자동으로 종료될 때 컨테이너를 제거하도록 Docker에 지시합니다.

이 플래그는 다음과 같이 docker builddocker run 명령을 한 줄로 실행할 수 있음을 의미합니다.

docker build -t my-image . && docker run --rm -it my-image

이 예에서 my-image는 빌드되고 실행될 Docker 이미지의 이름입니다. docker build 명령 끝에 있는 마침표(.)는 Dockerfile이 현재 디렉터리에 있음을 나타냅니다.

이 명령을 실행하면 Docker는 Dockerfile의 지침을 사용하여 이미지를 빌드한 다음 새 컨테이너에서 이미지를 실행합니다. --rm 플래그는 컨테이너가 종료될 때 컨테이너를 자동으로 제거하도록 합니다.

명령 대체를 사용하여 Docker 명령 결합

두 명령을 결합하는 또 다른 예는 달러 기호($) 연산자를 사용하여 중첩하는 것입니다. 명령은 다음과 같아야 합니다.

docker run --rm -it $(docker build -t my-image)

$(...) 구문을 명령 대체라고 합니다. Docker는 명령의 출력을 다른 명령에 대한 인수로 사용하기 때문에 명령 대체를 사용합니다.

위의 경우 Docker는 docker build -t my-image 명령을 먼저 실행하고 출력(새로 빌드된 Docker 이미지의 ID)을 docker run 명령의 인수로 사용합니다. Docker는 대체를 사용하여 docker run 명령이 docker build 명령에서 반환된 ID로 Docker 이미지를 실행하도록 합니다.

또한 응용 프로그램을 프로덕션 환경에 배포하는 경우 이 방법을 사용하여 Docker 이미지를 빌드하고 프로덕션 서버에서 실행할 수 있습니다. 이렇게 하면 애플리케이션이 일관된 환경에서 실행되고 관리 및 유지 관리가 더 쉬워집니다.

결론

전반적으로 docker builddocker run 명령은 Docker 이미지를 빌드하고 실행하기 위한 강력한 도구입니다. 이러한 명령을 결합하면 단 한 줄의 코드로 Docker 이미지를 빌드하고 실행할 수 있으므로 애플리케이션을 더 쉽고 빠르게 개발, 테스트 및 배포할 수 있습니다.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn