도커: 개념과 설치
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 개발자 및 시스템 관리자
- 중간 수준의 Linux/커맨드 라인 지식 보유자
- 애플리케이션 배포 및 컨테이너화에 관심 있는 사람
핵심 요약
- 컨테이너 기반 배포 도구로서의 도커
- 컨테이너는 가상 머신(Virtual Machine)과 가상 호스트(Virtual Host)보다 경량하고 빠른 실행이 가능하며, 독립적인 이미지로 구성된다.
- 도커는 컨테이너 기반의 애플리케이션 배포 및 관리의 핵심 도구로, 이미지 생성, 실행, 통신 기능을 제공한다.
- Ubuntu 기반 설치 명령어
- sudo apt update
, sudo apt install docker-ce
, sudo systemctl status docker
등 명령어를 통해 설치 및 상태 확인 가능.
- 기본 사용법
- docker search
, docker pull
, docker run
, docker images
, docker exec
등 핵심 명령어로 컨테이너 관리 가능.
섹션별 세부 요약
1. 컨테이너, 가상 머신, 가상 호스트의 차이점
- 가상 호스트(Virtual Host)
- 동일한 서버 내에서 사용자 및 디렉토리별로 웹 애플리케이션 분리 가능.
- 예: Apache 또는 Nginx 서버에서 사용.
- 가상 머신(Virtual Machine)
- 하나의 물리적 서버 내에서 여러 서버 가상화 가능.
- 리소스 공유 및 고립성 제공.
- 컨테이너(Container)
- 이미지 기반의 경량 실행 환경 제공.
- 애플리케이션, 데이터베이스, 웹 서버 등 독립적으로 실행 가능.
2. 도커의 기능 및 장점
- 애플리케이션 분리 및 통신
- 웹 애플리케이션, API, 데이터베이스 등을 독립적으로 실행 및 관리 가능.
- 버전 관리 및 배포 효율성 향상.
- 커뮤니티 및 기업 이미지 라이브러리
- Apache, PostgreSQL 등 다양한 이미지 제공.
- 커스터마이징 및 확장 가능.
3. 도커 설치 및 기본 명령어
- Ubuntu 설치 단계
- 패키지 업데이트:
sudo apt update
- HTTPS 인증 관련 패키지 설치:
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
- Docker 저장소 추가:
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 install docker-ce
- Docker 서비스 상태 확인:
sudo systemctl status docker
- 사용자 권한 부여:
sudo usermod -aG docker ${USER}
- 기본 명령어 사용 예시
- 이미지 검색: docker search apache
- 이미지 다운로드: docker pull httpd
- 이미지 목록 보기: docker images
- 컨테이너 실행: docker run --name webserver -it httpd
- 컨테이너 상태 확인: docker ps -a
- 컨테이너 실행: docker start 181007c9adb9
- 컨테이너 내부 접근: docker exec -it 181007c9adb9 /bin/bash
결론
- 도커는 애플리케이션 배포 및 관리의 효율성을 극대화하는 도구.
- Ubuntu 기반 설치는 명령어 순서를 정확히 따라야 성공 가능.
- docker search, pull, run, images, exec 등 기본 명령어를 통해 컨테이너 생성 및 관리 가능.
- 실무에서는 이미지 라이브러리 활용과 커스터마이징을 통해 생산성 향상.