Provisioning, tools / Docker

Jeonghak Cho·2025년 3월 20일

Provisioning

목록 보기
16/44

도커 개요

Docker는 컨테이너(Container) 기반 가상화 플랫폼으로, 애플리케이션을 격리된 환경에서 실행할 수 있도록 해주는 도구이다. 도커를 통해 개발, 테스트, 배포 환경을 표준화할 수 있다.

주요 개념

이미지(Image)

실행 가능한 애플리케이션과 환경을 포함한 불변(Immutable)한 패키지
예제: ubuntu, nginx, python:3.9

컨테이너(Container)

이미지를 실행한 인스턴스로, 애플리케이션이 동작하는 격리된 환경
가상 머신(VM)보다 가볍고 빠름

Dockerfile

Docker 이미지를 만들기 위한 설정 파일

FROM python:3.9
COPY app.py /app/
CMD ["python", "/app/app.py"]

Docker Compose

여러 개의 컨테이너를 관리하는 도구

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"

레지스트리(Registry)

Docker 이미지를 저장하는 공간
예제: Docker Hub, AWS ECR, Google GCR

Docker vs 가상 머신(VM) 비교

Docker (컨테이너)가상 머신 (VM)
실행 방식호스트 OS 위에서 격리된 컨테이너 실행OS 전체를 가상화하여 실행
속도빠름 (초 단위 실행)느림 (분 단위 실행)
용량가벼움 (~MB 단위)무거움 (GB 단위)
성능적은 리소스로 다수의 컨테이너 실행 가능리소스 소비 많음
사용 예시마이크로서비스, CI/CD, 클라우드 배포전통적인 서버 가상화

명령어

명령어설명
docker pull <이미지>Docker Hub에서 이미지 다운로드
docker run -d --name <컨테이너명> -p <호스트포트>:<컨테이너포트> <이미지>컨테이너 실행 (백그라운드)
docker ps실행 중인 컨테이너 목록 확인
docker stop <컨테이너명>컨테이너 중지
docker rm <컨테이너명>컨테이너 삭제
docker images로컬에 있는 Docker 이미지 목록 확인
docker rmi <이미지>Docker 이미지 삭제
docker exec -it <컨테이너명> bash실행 중인 컨테이너 내부로 접속
docker logs <컨테이너명>컨테이너 로그 확인
docker-compose up -ddocker-compose.yml 기반으로 컨테이너 실행
docker-compose downdocker-compose.yml 기반으로 실행된 컨테이너 중지

활용

sudo 없이 docker 명령어 사용

  • 사용자 확인
ubuntu@DESKTOP-SCOK45O:~$ whoami
ubuntu
  • Docker 그룹이 있는지 확인
ubuntu@DESKTOP-SCOK45O:~$ cat /etc/group | grep docker
docker:x:989:
ubuntu@DESKTOP-SCOK45O:~$ sudo usermod -aG docker $(whoami)

-aG 옵션은 기존 그룹을 유지하면서 docker 그룹을 추가하는 옵션

  • 도커 그룹이 없을 시 추가
sudo groupadd docker
  • 변경사항 적용
ubuntu@DESKTOP-SCOK45O:~$ newgrp docker
  • 확인
ubuntu@DESKTOP-SCOK45O:~$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                             NAMES
f6d66507f63c   quay.io/minio/minio   "/usr/bin/docker-ent…"   3 minutes ago   Up 3 minutes   0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp   minio

도커 설치 (우분투)

  1. 우분투 시스템 패키지 업데이트
    sudo apt-get update

  2. 필요한 패키지 설치
    sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

  3. Docker의 공식 GPG키를 추가
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  4. Docker의 공식 apt 저장소를 추가
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

  5. 시스템 패키지 업데이트
    sudo apt-get update

  6. Docker 설치
    sudo apt-get install docker-ce docker-ce-cli containerd.io

  7. Docker가 설치 확인
    7-1 도커 실행상태 확인
    sudo systemctl status docker
    7-2 도커 실행
    sudo docker run hello-world

0개의 댓글