Docker 플래시카드

카테고리 후원자

Docker는 Solomon Hykes가 만든 애플리케이션 컨테이너화 플랫폼입니다. 표준화, 이식성, 애플리케이션 환경의 격리를 염두에 두고 설계된 도구입니다. Docker는 경량성과 효율성이 특징이며, 애플리케이션과 그 종속성을 다양한 환경에서 쉽게 패키징, 배포 및 실행할 수 있습니다. 이 시스템은 고급 컨테이너 관리 및 오케스트레이션 기능을 제공하여 개발자와 관리자가 애플리케이션을 효율적으로 배포, 확장 및 관리할 수 있는 도구를 제공합니다. Docker는 또한 마이크로서비스 아키텍처와 지속적 통합을 지원하며, 높은 성능을 유지하고 빠르고 반복 가능한 소프트웨어 개발 및 배포 프로세스를 가능하게 합니다.

우리의 플래시카드 앱에는 신중하게 선정된 Docker 면접 질문과 포괄적인 답변이 포함되어 있어, Docker 지식이 필요한 어떤 면접에도 효과적으로 대비할 수 있습니다. IT 플래시카드는 구직자만을 위한 도구가 아닙니다 - 현재의 경력 계획에 관계없이 지식을 강화하고 테스트할 수 있는 훌륭한 방법입니다. 앱을 정기적으로 사용하면 최신 Docker 트렌드를 지속적으로 파악하고 높은 수준의 기술을 유지할 수 있습니다.

우리 앱의 샘플 Docker 플래시카드

App Store 또는 Google Play에서 저희 앱을 다운로드하여 더 많은 무료 플래시카드를 받거나, 모든 플래시카드에 액세스하려면 구독하세요.

컨테이너와 가상 머신의 주요 차이점은 무엇입니까?

컨테이너가상 머신(VM)은 아키텍처와 성능 면에서 차이가 있습니다.

1. 아키텍처:
가상 머신에는 전체 운영체제가 있으며, 이는 하이퍼바이저에서 실행되는 자체 커널, 애플리케이션 및 라이브러리를 포함합니다. 하이퍼바이저는 VM에 의해 하드웨어 자원이 공유되는 것을 관리합니다. 가상 머신에는 전체 운영 체제가 포함되어 있으므로 디스크 크기면에서 큽니다.

반면에, 컨테이너는 그들이 실행되는 운영체제의 커널을 공유하고 애플리케이션과 그 종속성만을 포함합니다. 그들은 Docker와 같은 컨테이너 엔진에 의해 관리됩니다. 컨테이너는 더 작고 오버헤드가 적으며, 전체 운영체제가 필요하지 않기 때문입니다.

2. 성능:
가상 머신은 전체 운영 시스템을 실행해야 하므로 오버헤드가 더 클 수 있습니다. 이는 시작할 때와 실행하는 동안 성능에 영향을 미칩니다.

컨테이너는 오버헤드가 적고 더 가볍고 빠르게 시작할 수 있으며, 배포도 간단하게 할 수 있습니다. 나아가, 다른 환경 사이에서 쉽게 이동할 수 있다는 장점이 있습니다.

마지막으로, 컨테이너와 가상 머신 모두 애플리케이션 개발에 있어서 자신의 위치가 있으며, 두 기술은 종종 애플리케이션 아키텍처에서 함께 사용됩니다. 그러나, 별도의 운영체제의 부재는 컨테이너를 가상 머신 보다는 격리되지 않고, 잠재적으로 덜 안전하게 만듭니다.

Docker 이미지란 무엇이며 어떻게 사용됩니까?

도커 이미지(Docker image)는 구성된 소프트웨어가 포함된 변경할 수 없는 파일입니다. 도커 이미지는 Dockerfile을 기반으로 생성되며, 이는 이미지를 빌드하는 방법에 대한 지침을 제공합니다.

도커 이미지의 주요 구성 요소는 레이어입니다. Dockerfile의 각 줄에 있는 명령은 새 레이어를 생성합니다. 레이어는 서로 위에 쌓여 최종 이미지를 형성합니다.

도커 이미지는 도커 컨테이너를 실행하는 데 사용됩니다. 컨테이너는 프로세스로 실행되는 이미지의 인스턴스입니다. 이미지와는 달리 컨테이너는 상태가 있고 수정할 수 있습니다.

도커 이미지는 변경할 수 없으며 필요한 모든 종속성을 포함하고 있기 때문에 다양한 시스템과 서버 간에 쉽게 전송될 수 있습니다. 결과적으로 도커 이미지에서 실행되는 애플리케이션은 환경에 관계없이 항상 동일하므로 테스트와 배포가 단순화됩니다.

도커의 핵심 원칙 중 하나는 "한 번 빌드하면 어디서나 실행"입니다. 즉, 한 번 빌드된 이미지는 도커를 지원하는 어떤 시스템에서도 실행할 수 있다는 것을 의미합니다.

Docker는 컨테이너 이미지에서 레이어를 어떻게 사용합니까?

Docker는 계층의 개념을 사용하여 컨테이너 이미지를 조립합니다. Dockerfile의 각 명령은 이미지에 새 계층을 만들어 이전 계층에서 파일을 추가하거나 수정하거나 제거합니다.

도커포계는 읽기 전용이므로 생성 된 후에는 수정할 수 없습니다. 컨테이너가 실행될 때 도커는 쌓인 계층 위에 쓰기 가능한 계층을 추가합니다. 컨테이너에서의 모든 변경 사항, 즉 새 파일을 저장하거나 기존 파일을 수정하거나 파일을 삭제하는 것은 모두 이 쓰기 가능한 계층에서 이루어집니다.

계층 시스템의 사용 덕분에 Docker는 이미지를 효율적으로 공유하고 저장할 수 있습니다. 이미지를 끌어올 때 도커는 캐시에 아직 없는 각 계층을 검색합니다. 이미지를 생성하고 저장할 때 Docker는 이미 사용 가능한 계층을 재사용하여 공간을 크게 절약합니다.

아래 코드는 Dockerfile의 각 명령어가 새 계층을 어떻게 만드는지 보여줍니다:
# 베이스 이미지 사용
FROM python:3.8

# 계층 생성
RUN pip install flask 

# 또 다른 계층을 추가합니다.
COPY . /app

이 예에서는 python:3.8 이미지를 기본 계층(base layer)로 사용합니다. 그런 다음 Flask 패키지를 설치하고 파일을 복사하여 계층을 추가합니다. 이러한 각 작업은 이미지에 새 계층을 추가합니다.

Dockerfile이란 무엇이며 어떤 용도로 사용됩니까?

Dockerfile은 Docker 이미지를 빌드할 때 자동으로 실행되는 명령어(명령)를 포함하는 텍스트 파일입니다. 이 파일에는 이미지를 생성하는 데 필요한 모든 정보를 순차적으로 배치합니다.

Dockerfile을 사용하여 이미지를 생성하려면 특정 폴더에서 다음 명령을 실행해야 합니다:
docker build .

이 경우 점은 빌드 컨텍스트(즉, Docker가 Dockerfile을 찾는 위치)가 우리가 있는 현재 위치(폴더)임을 나타냅니다.

이 솔루션의 아름다움은 Dockerfile에 이미지를 정의한 후 Docker가 설치된 어느 서버에서든 완전히 재생성할 수 있다는 것입니다. 호스트 구성에 관계없이 개발 및 프로덕션 환경의 반복성을 보장합니다.

다음은 Dockerfile 콘텐츠의 예입니다:
# 사용 된 기본 이미지
FROM python:3

# 컨테이너에서 작동하는 디렉토리 설정
WORKDIR /usr/src/app

# 요구 파일 복사 및 의존성 설치
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

# 나머지 코드를 WORKDIR에 복사
COPY . .

# 애플리케이션이 실행될 포트 공개
EXPOSE 8080

# 컨테이너가 시작될 때 실행될 명령
CMD [ "python", "./app.py" ]


이제 애플리케이션은 localhost:8080에서 이용 가능해야 합니다.

다운로드 IT 플래시카드 지금

우리의 플래시카드로 Docker 지식을 확장하십시오.
프로그래밍 기초부터 고급 기술 마스터리까지, IT 플래시카드는 IT에서의 우수성을 향한 여권입니다.
지금 다운로드하여 오늘의 경쟁력 있는 기술 세계에서의 잠재력을 발견하세요.