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/
Install Docker Desktop on Mac
Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.
docs.docker.com
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 |