[241127 TIL]
프로젝트 관리 심화
- Docker
- Docker-compose
- CI/CD 파이프라인 구축
- AWS Elastic Container Service 사용
Docker
- 애플리케이션을 쉽게 만들고, 테스트하고, 배포할 수 있게 도와주는 소프트웨어 플랫폼
- 애플리케이션을 컨테이너라는 가볍고 이식성 있는 패키지로 실행 가능
- Docker 이미지는 애플리케이션을 실행하는 데 필요한 모든 것(코드, 런타임, 시스템 도구, 시스템 라이브러리 등) 포함
- 이미지 (Image)
- 애플리케이션과 그 실행에 필요한 모든 것을 포함하는 읽기 전용 템플릿
- 코드, 런타임, 라이브러리, 환경 변수, 구성 파일 등 포함
- 이미지는 컨테이너를 생성하기 위한 청사진 역할을 합니다.
- 컨테이너 (Container)
- 컨테이너는 Docker 이미지를 실행한 상태입니다. 이미지가 정적인 템플릿이라면, 컨테이너는 실제로 애플리케이션이 실행되는 동적인 환경입니다.
- 컨테이너는 격리된 공간에서 애플리케이션을 실행하며, 필요한 모든 의존성을 포함합니다.
- 하나의 시스템에서 여러 개의 컨테이너를 독립적으로 실행할 수 있습니다.
- Dockerfile
- Dockerfile은 Docker 이미지를 생성하기 위한 스크립트입니다. 이 파일에는 이미지를 빌드하는 데 필요한 명령어들이 포함되어 있습니다.
- Dockerfile을 사용하면 이미지 생성 과정을 자동화하고 일관되게 만들 수 있습니다.
- Docker Hub
- Docker Hub는 Docker 이미지를 공유하고 저장하는 중앙 저장소입니다. 사용자는 Docker Hub에서 다양한 공개 이미지를 다운로드하거나 자신만의 이미지를 업로드할 수 있습니다.
- 볼륨 (Volume)
- 볼륨은 컨테이너의 데이터를 지속적으로 저장할 수 있는 메커니즘입니다. 컨테이너가 삭제되더라도 볼륨에 저장된 데이터는 유지됩니다.
- 볼륨을 사용하면 데이터를 컨테이너와 독립적으로 관리할 수 있습니다.
- 네트워크 (Network)
- Docker 네트워크는 컨테이너 간의 통신을 관리하는 방식입니다. Docker는 여러 가지 네트워크 드라이버를 제공하여 다양한 네트워크 설정을 지원합니다.
- 기본적으로 모든 컨테이너는 브리지 네트워크를 통해 통신할 수 있습니다.
- 네트워크 종류
- Bridge Network (브리지 네트워크)
- 기본적으로 Docker가 컨테이너를 실행할 때 사용하는 네트워크입니다.
- 동일한 브리지 네트워크에 연결된 컨테이너들은 서로 통신할 수 있습니다.
- 외부 네트워크와는 NAT (내부 네트워크의 여러 장치가 하나의 공용 IP 주소를 통해 외부 네트워크와 통신할 수 있도록 IP 주소를 변환하는 기술) 를 통해 통신합니다.
- 일반적으로 단일 호스트에서 여러 컨테이너를 연결할 때 사용됩니다.
- 명시하지 않으면 모두 브리지 네트워크에서 실행됩니다.
docker network create my-bridge-network docker run -d --name container1 --network my-bridge-network nginx docker run -d --name container2 --network my-bridge-network nginx
- Bridge Network (브리지 네트워크)

'[내일배움캠프] AI 를 활용한 백엔드 아카데미 심화 과정 > TIL' 카테고리의 다른 글
캐싱(Caching), 캐싱의 필요성, 캐싱 전략 (1) | 2024.11.29 |
---|---|
Redis 명령어 (2) | 2024.11.28 |
QueryDSL (0) | 2024.11.26 |
MSA 프로젝트 (0) | 2024.11.25 |
MSA(보안구성, Config, 분산추적, 이벤트 드리븐) (1) | 2024.11.22 |