소개
이 포괄적인 Docker 튜토리얼은 개발자 및 시스템 관리자에게 컨테이너 기술을 구현하기 위한 필수 지식을 제공합니다. 기본적인 Docker 개념, 설치 절차 및 실제 예제를 다루면서 학습자는 현대 소프트웨어 배포 및 가상화 기술에 대한 실질적인 기술을 습득하게 됩니다.
이 포괄적인 Docker 튜토리얼은 개발자 및 시스템 관리자에게 컨테이너 기술을 구현하기 위한 필수 지식을 제공합니다. 기본적인 Docker 개념, 설치 절차 및 실제 예제를 다루면서 학습자는 현대 소프트웨어 배포 및 가상화 기술에 대한 실질적인 기술을 습득하게 됩니다.
Docker 는 소프트웨어 배포 및 애플리케이션 가상화를 혁신하는 강력한 컨테이너 기술입니다. 개발자는 애플리케이션과 모든 종속성을 표준화된 단위인 컨테이너에 패키징할 수 있습니다.
| 개념 | 설명 |
|---|---|
| Docker 이미지 | 경량의 독립 실행형 실행 패키지 |
| 컨테이너 | 이미지의 실행 가능한 인스턴스 |
| Dockerfile | 이미지 구성을 정의하는 스크립트 |
컨테이너는 호스트 시스템의 커널을 공유하면서 애플리케이션 격리를 유지하여 경량의 가상화를 제공합니다. 이 접근 방식은 기존 가상 머신과 다릅니다.
## 패키지 인덱스 업데이트
sudo apt update
## 종속성 설치
sudo apt install apt-transport-https ca-certificates curl software-properties-common
## Docker GPG 키 추가
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## 리포지토리 설정
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Docker 엔진 설치
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
## Ubuntu 이미지 가져오기
docker pull ubuntu:latest
## 대화형 컨테이너 실행
docker run -it ubuntu:latest /bin/bash
## 컨테이너 내부
apt update
apt install nginx -y
exit
| 요구 사항 | 사양 |
|---|---|
| OS | Ubuntu 22.04 LTS |
| 아키텍처 | 64 비트 |
| 커널 | 5.10+ |
| RAM | 최소 2GB |
## 시스템 패키지 업데이트
sudo apt update && sudo apt upgrade -y
## 충돌 패키지 제거
sudo apt remove docker docker-engine docker.io containerd runc
## 필요한 종속성 설치
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
## Docker 공식 GPG 키 추가
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## 안정적인 리포지토리 설정
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Docker 엔진 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
## 설치 확인
sudo docker --version
## docker 사용자 그룹 생성
sudo groupadd docker
## 현재 사용자를 docker 그룹에 추가
sudo usermod -aG docker $USER
## Docker 서비스 활성화
sudo systemctl enable docker.service
sudo systemctl start docker.service
## Docker 기능 확인
docker run hello-world
## Docker Compose 다운로드
sudo curl -L " -s)-$(uname -m)" -o /usr/local/bin/docker-compose
## 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
## 설치 확인
docker-compose --version
| 명령어 | 기능 |
|---|---|
| docker run | 컨테이너 생성 및 시작 |
| docker ps | 실행 중인 컨테이너 목록 |
| docker stop | 실행 중인 컨테이너 중지 |
| docker rm | 컨테이너 제거 |
| docker exec | 컨테이너 내 명령어 실행 |
## Ubuntu 이미지 가져오기
docker pull ubuntu:latest
## 대화형 컨테이너 실행
docker run -it --name my-ubuntu ubuntu:latest /bin/bash
## 모든 컨테이너 목록
docker ps -a
## 중지된 컨테이너 시작
docker start my-ubuntu
## 실행 중인 컨테이너 중지
docker stop my-ubuntu
## 컨테이너 제거
docker rm my-ubuntu
## 백그라운드에서 컨테이너 실행
docker run -d --name nginx-server nginx:latest
## 컨테이너 포트를 호스트에 매핑
docker run -p 8080:80 -d nginx:latest
## 컨테이너 세부 정보 확인
docker inspect nginx-server
## 컨테이너 로그 보기
docker logs nginx-server
## 실행 중인 컨테이너에서 명령어 실행
docker exec -it nginx-server bash
## 컨테이너 리소스 제한
docker run -d \
--name limited-container \
--cpus="1" \
--memory="512m" \
nginx:latest
## 컨테이너 리소스 사용량 모니터링
docker stats
## 사용자 정의 네트워크 생성
docker network create my-network
## 특정 네트워크에서 컨테이너 실행
docker run --network=my-network -d nginx:latest
Docker 는 소프트웨어 배포에 혁명적인 접근 방식을 제시합니다. 가볍고 휴대 가능한 컨테이너를 통해 애플리케이션 개발 및 인프라 관리를 간소화합니다. Docker 의 핵심 원리, 설치 프로세스, 컨테이너 관리 기술을 숙달함으로써 전문가들은 다양한 컴퓨팅 환경에서 소프트웨어 개발 및 배포 역량을 크게 향상시킬 수 있습니다.