🏷️ Docker Tags & Tagging Override
도커에서는 동일한 이미지에 다양한 버전을 붙일 수 있도록 태그(Tag) 기능을 제공한다. 예를 들어 Dockerfile을 이용해 website라는 이미지를 만든 후 다음과 같이 태그를 붙일 수 있다.
docker build -t website:5 .
이제 website라는 이미지의 버전 5가 만들어진 것. 만약 특정 태그를 latest로 덮어쓰고 싶다면?
docker tag website:5 website:latest
기존 website:5는 그대로 유지되고, latest라는 새 태그가 생긴다. 이를 Tagging Override라고 한다.
🗂️ Docker Registries란?
Docker Registry는 이미지 저장소다. 우리가 자주 쓰는 Docker Hub, AWS ECR, Google GCR, Azure ACR 등이 모두 레지스트리에 해당한다.
CI/CD 파이프라인을 구성하면 다음과 같은 흐름이 된다:
커스터마이즈된 이미지 생성(CI) → Docker Hub 등으로 업로드 → 사용자들이 다운로드해 사용(CD)
🛠️ Private Registry를 직접 컨테이너로 구성해서 쓸 수도 있다.
🧰 Docker Inspect & Logs
- docker inspect <컨테이너명>
→ 컨테이너의 JSON 형태 상세 정보 확인 (리소스 포함) - docker logs <컨테이너명>
→ 컨테이너 내부 로그 확인 가능
옵션:
-t: 시간 출력 / -f: 실시간 출력 / --tail: 마지막 n줄만
🔄 Fluentd로 로그 연동하기
fluentd는 다양한 소스에서 로그를 수집하여 저장하는 오픈소스 도구다. 도커 로그를 MongoDB, S3, Hadoop 등 다양한 저장소로 연동할 수 있다.
💡 MongoDB는 NoSQL DB로, 기존 RDBMS처럼 Schema(name, type, size)를 미리 지정하지 않아도 된다.
🧮 컨테이너 리소스 할당하기
도커는 기본적으로 수평 확장(Horizontal Scaling) 구조지만, 개별 컨테이너가 자원을 독점할 수도 있다. 이를 방지하기 위해 리소스를 제한할 수 있다.
1️⃣ 메모리 제한
docker run --memory="1g" ubuntu:14.04
- 최소: 6MB
- 단위: k, m, g
2️⃣ CPU 제한
- cpu-shares: 상대적 가중치 지정
- docker run --cpu-shares=1024 ubuntu
- cpu-period & cpu-quota:
CPU 사용 시간 제한 (단위: 마이크로초) - docker run --cpu-period=100000 --cpu-quota=50000 ubuntu
- --cpus: 직접 CPU 비율 지정
- docker run --cpus="0.5" ubuntu
- --cpuset-cpus: 특정 CPU만 사용
- docker run --cpuset-cpus="1,2" ubuntu
3️⃣ HDD(Block I/O) 제한
- bps (초당 전송속도 제한)
- docker run --device-write-bps /dev/sda:1mb ubuntu
- IOPS (초당 입출력 횟수 제한)
- docker run --device-write-iops /dev/sda:1000 ubuntu
⚠️ 이 제한은 Direct I/O에만 적용된다. Buffered I/O에는 적용되지 않는다.
💡 디스크 용량 제한을 하려면 Disk Quotas를 사용해야 한다.
📦 예시: FTP 컨테이너 실행
docker run -d \
--name myftp \
-p 2001:21 -p 30000-30009:30000-30009 \
-v $PWD:/home/ftpusers/ \
-e "PUBLICHOST=localhost" \
-e "FTP_ROOT_PASS=rootoor" \
-e "FTP_USER_NAME=paul" \
-e "FTP_USER_PASS=paul" \
-e "FTP_USER_HOME=/home/paul" \
stilliard/pure-ftpd:latest
💾 참고: MySQL 엔진 종류
엔진 특징
엔진 | 특성 |
InnoDB | 트랜잭션 지원, 대용량 처리, 무거움 |
MyISAM | 빠름, 가벼움, 트랜잭션 미지원 |
🖥️ DB 연결 GUI 도구 정리
DB 종류 | 도구 |
MySQL | MySQL Workbench, phpMyAdmin |
Oracle | SQL Developer |
MS SQL | 기본 GUI 포함 |
모든 DB | DBeaver 사용 가능 |
🧱 Vault(볼트)란?
데이터베이스나 서비스 인증 시 나오는 팝업 인증창을 vault라고 부르기도 한다. 이는 작은 비밀 공간(납골당 느낌 😅)처럼 민감 데이터를 안전하게 저장하는 개념이다.
'네트워크 > 클라우드' 카테고리의 다른 글
📦 Kubernetes(K8s) 클러스터 구성과 CNI, YAML 완전 정리 (0) | 2025.05.23 |
---|---|
🐳 Docker Swarm 완전정복: 실습과 개념 총정리 (0) | 2025.05.20 |
🐳 Docker와 연동 기술 완전 정리 (이벤트, Dockerfile, Node.js, Flask 등) (1) | 2025.05.16 |
🐳 Docker 이미지와 컨테이너 관리 개념 정리 (1) | 2025.05.14 |
☁️ Docker와 Kubernetes 완전 정복! (0) | 2025.05.13 |