
Docker 기본 구성 요소

Docker의 구조 및 프로세스는 위와 같다.
도커 사용 프로세스를 글로 요약하자면
1. Dockerfile 작성
- 어떤 환경(예: Ubuntu, Node.js 등)에서 어떤 애플리케이션을 실행할지 정의
- 예: 어떤 패키지를 설치하고, 어떤 명령을 실행할지
2. 도커 이미지 빌드
docker build -t my-app .
- Dockerfile을 바탕으로 이미지 생성
- -t는 이미지 이름을 설정하는 옵션
3. 도커 컨테이너 실행
docker run -d -p 8080:80 my-app
- 만든 이미지를 바탕으로 실제 실행 환경(컨테이너) 생성
- -p는 포트 매핑, -d는 백그라운드 실행
4. 애플리케이션 접속 및 테스트
- 예: http://localhost:8080으로 접속
5. 컨테이너 관리
- 상태 확인: docker ps
- 중지: docker stop [컨테이너ID]
- 삭제: docker rm [컨테이너ID]
6. 이미지 배포 (선택 사항)
- Docker Hub 같은 저장소에 업로드
docker push myusername/my-app
Docker File
Docker File은 도커 이미지를 만들기 위한 설정 파일입니다.
이 파일은 텍스트 파일로, 실행할 운영 체제, 설치할 패키지, 애플리케이션 실행 명령 등을 명시합니다.
즉, 도커 이미지가 어떤 환경에서 어떻게 동작해야 하는지에 대한 청사진 역할을 합니다.
(어플리케이션 구동을 위한 파일은 무엇이 있는지, 기타 의존성, 환경 변수 등)
[예시]
# 베이스 이미지 선택
FROM node:16
# 작업 디렉토리 설정
WORKDIR /app
# 애플리케이션 파일 복사
COPY . .
# 의존성 설치
RUN npm install
# 애플리케이션 실행
CMD ["npm", "start"]
- FROM: 사용할 기본 이미지를 지정
- WORKDIR: 작업 디렉토리를 설정
- COPY: 파일을 컨테이너 내로 복사
- RUN: 명령어 실행 (예: 의존성 설치)
- CMD: 컨테이너 시작 시 실행될 기본 명령어 지정
Docker Image
Docker Image는 애플리케이션을 실행하는 데 필요한 모든 파일, 라이브러리, 실행 환경 등을 포함한
불변(immutable) 파일 시스템입니다.
도커 이미지는 애플리케이션을 컨테이너로 실행할 수 있도록 필요한 모든 설정을 포함하고 있으며,
한 번 만들어지면 변경되지 않습니다.
서버 프로그램, 코드, 실행 파일이 포함된 형태이고 한 세트입니다.
- 도커 이미지는 기본적으로 Dockerfile을 통해 생성됩니다.
- 이미지는 여러 번 사용할 수 있기 때문에, 애플리케이션 환경을 재현하거나 배포할 때 유용합니다.
- 예를 들어, node:16은 Node.js 16 버전의 이미지를 의미합니다.
Docker Container
도커 컨테이너는 도커 이미지를 실행한 실제 실행 환경입니다.
컨테이너는 가상 머신처럼 동작하지만, 경량화된 실행 환경으로, 시스템 자원을 효율적으로 사용할 수 있습니다.
- 컨테이너는 도커 이미지에서 정의된 애플리케이션을 실제로 실행하는 프로세스를 포함하고 있습니다.
- 컨테이너는 실행 중에 변경 가능하며, 종료되면 해당 컨테이너에서 실행한 작업 상태는 사라질 수 있습니다. 그러나 데이터는 볼륨(volumes)을 사용해 유지할 수 있습니다.
- 예를 들어, docker run 명령어로 컨테이너를 실행할 수 있습니다.
Docker Hub
Docker Hub는 도커 이미지를 저장하고 공유하는 공식 저장소입니다. 개발자들은 도커 이미지를 도커 허브에 업로드하고, 다른 사람들은 이를 다운로드하여 사용할 수 있습니다. 즉, 도커 이미지의 레지스트리 역할을 합니다.
- 공개 이미지와 비공개 이미지를 모두 지원합니다.
- 인기 있는 공식 이미지들도 많이 있으며, 예를 들어 node, python, nginx와 같은 이미지들이 도커 허브에 존재합니다.
- 사용자는 자신이 만든 이미지를 도커 허브에 푸시(pushing)하고, 다른 사람들은 해당 이미지를 풀(pulling)하여 사용할 수 있습니다.
예시: docker pull node는 도커 허브에서 Node.js 이미지를 가져옵니다.
'화상채팅 프로젝트 > Docker' 카테고리의 다른 글
| [Docker] 적응기 - nginx에 간단 html 올려보기 (0) | 2025.07.11 |
|---|---|
| [Docker] 적응기 - nginx 웹서버 띄워보기 (0) | 2025.07.09 |
| [Docker] 기본 명령어 정리 (0) | 2025.07.09 |
| [Docker] Docker 다운로드 / Docker 설치 방법 (0) | 2025.06.24 |
| [Docker 입문] 도커란 무엇인가? 컨테이너 개념까지 쉽게 정리 (0) | 2025.06.24 |