CI/CD
지속적인 통합 Continuous Integration
지속적인 서비스 제공 Continuous Delivery
지속적인 배포 Continuous Deployment
Docker
도커를 사용하는 이유
애플리케이션 개발과 배포가 편리해짐
- Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향이 없음.
- CI 과정의 테스트에서 Docker 활용.
- 어떤 서버에 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성할 수 있음.
→ 애플리케이션의 독립성과 확장성이 높아짐
Docker 설치 ( Mac 기준 )
homebrew를 이용해 Docker, Docker compose 설치
# 사전에 homebrew 설치 필수
# docker for mac설치
brew install docker docker-compose
# docker version 확인
docker --version
# docker compose version 확인
docker-compose --version
Docker 공식 사이트에서 Docker Desktop 다운로드 및 설치
https://docs.docker.com/desktop/install/mac-install/
Container 실행테스트
docker info
* 터미널에 저 커맨드 입력 시 Docker Demon을 찾을 수 없다는 에러 문구가 뜨게 되는데 Docker Desktop 설치 후 애플리케이션을 실행하는 상태에서 다시 실행하면 정상적으로 동작된다.
# nginx 이미지 다운받기
docker image pull nginx:1.25.3-alpine
docker images
docker image history nginx:1.25.3-alpine
docker run -d -p 8001:80 --name webserver01 nginx:1.25.3-alpine
docker ps | grep webserver01
docker port webserver01
curl localhost:8001
Docker Image 관리
Docker Container 서비스를 위한 이미지는 Container 런타임에 필요한 바이너리, 라이브러리 및 설정 값 등을 포함하고, 변경되는 상태값을 보유하지 않고 변하지 않음. (Immutable, Read-Only)
도커 이미지는 필요한 파일만 포함하고 있기 때문에 용량이 작으며, 이미지를 변경할 필요가 있을 경우에는 새 이미지를 생성해야 한다.
docker pull : Docker 이미지 내려받기
hub.docker.com 에서 이미지를 제공받거나 해당 사이트로 이미지를 제공
Private Registry 서버를 통해 이미지를 제공받거나 제공 가능
docker [image] pull [options] name:[tag]
docker image inspect : Docker 이미지의 내부 구조 정보를 json 형태로 제공
docker image history : Dockerfile에 대한 정보
Docker Image와 Docker Container의 관계
Image : 컨테이너에 대한 OS, Application, Library 등의 정보를 담고 있음.
Container : Image를 실행한 상태. 1개의 Image로부터 n개의 Container를 생성할 수 있는 1:n 관계.
Docker Container 관련 명령어
'DevOps' 카테고리의 다른 글
[✉️ Kafka] Kafka 이해하기2 - Zookeper, Broker, Message (2) | 2024.09.27 |
---|---|
[✉️ Kafka] Kafka 이해하기1 - Producer, Consumer, Topic, Partition (0) | 2024.09.27 |
Docker로 pgAdmin 띄워서 PostgreSQL 손쉽게 활용하기 (1) | 2024.09.25 |
Redis와 NoSQL, Redis의 데이터 타입 이해하기 (0) | 2024.08.21 |
Dockerfile & Docker Compose 사용하기 (0) | 2024.08.20 |