카테고리 없음

Docker

idea9329 2024. 9. 2. 17:22
반응형

Docker는 애플리케이션을 컨테이너화하여 격리된 환경에서 실행할 수 있게 해주는 도구야. 이를 통해 개발, 테스트, 배포를 효율적으로 수행할 수 있어. Docker를 처음 사용해보는 사람들을 위해 기본적인 사용법을 설명할게.

1. Docker 설치

Docker를 사용하기 위해서는 먼저 Docker를 설치해야 해. Docker는 Windows, macOS, Linux에서 사용할 수 있어.

  • Windows/MacOS: Docker Desktop을 설치해. Docker 공식 웹사이트에서 설치 프로그램을 다운로드할 수 있어.
  • Linux: 터미널에서 다음 명령어를 사용해 Docker를 설치할 수 있어 (Ubuntu 예시):설치 후, docker --version 명령어를 실행하여 설치가 올바르게 되었는지 확인해.
  • sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io

2. Docker 기본 명령어

Docker를 설치했다면, 다음 기본 명령어들을 익혀두면 좋아.

  • 이미지 검색: Docker Hub에서 이미지를 검색해.
  • docker search <이미지_이름>
  • 이미지 다운로드: Docker Hub에서 이미지를 로컬에 다운로드해.예: docker pull nginx
  • docker pull <이미지_이름>
  • 컨테이너 실행: 특정 이미지를 기반으로 컨테이너를 실행해.예: docker run -d -p 8080:80 nginx
  • 이 명령어는 NGINX 웹 서버를 백그라운드에서 실행하고, 호스트의 8080 포트를 컨테이너의 80 포트에 매핑해.
  • docker run <옵션> <이미지_이름>
  • 실행 중인 컨테이너 확인: 현재 실행 중인 컨테이너 목록을 확인해.
  • docker ps
  • 모든 컨테이너 확인: 실행 중인 컨테이너뿐만 아니라 정지된 컨테이너도 포함해 모든 컨테이너를 확인해.
  • docker ps -a
  • 컨테이너 중지: 실행 중인 컨테이너를 중지해.
  • docker stop <컨테이너_ID 또는 이름>
  • 컨테이너 삭제: 중지된 컨테이너를 삭제해.
  • docker rm <컨테이너_ID 또는 이름>
  • 이미지 삭제: 로컬에 있는 Docker 이미지를 삭제해.
  • docker rmi <이미지_ID 또는 이름>

3. Dockerfile 작성

Dockerfile은 Docker 이미지를 만들기 위한 설정 파일이야. 이를 통해 자신만의 이미지를 만들 수 있어.

예를 들어, 간단한 Python 애플리케이션을 위한 Dockerfile은 다음과 같아:

# 베이스 이미지 설정
FROM python:3.9

# 작업 디렉토리 설정
WORKDIR /app

# 필요 파일 복사
COPY . /app

# 의존성 설치
RUN pip install -r requirements.txt

# 애플리케이션 실행 명령어
CMD ["python", "app.py"]

이 Dockerfile을 사용해 이미지를 빌드하려면 해당 파일이 있는 디렉토리에서 다음 명령어를 실행해:

docker build -t my-python-app .

my-python-app이라는 이름으로 Docker 이미지를 생성하는 명령어야.

4. Docker Compose

Docker Compose는 여러 컨테이너를 함께 정의하고 관리할 수 있는 도구야. 이를 사용하면 복잡한 애플리케이션을 쉽게 구성하고 실행할 수 있어.

예를 들어, 웹 애플리케이션과 데이터베이스를 함께 실행하는 docker-compose.yml 파일은 다음과 같아:

version: '3'
services:
  web:
    image: my-python-app
    ports:
      - "5000:5000"
  db:
    image: postgres
    environment:
      POSTGRES_USER: example
      POSTGRES_PASSWORD: example

이 파일을 사용해 애플리케이션을 실행하려면 다음 명령어를 사용해:

docker-compose up

docker-compose.yml 파일에 정의된 모든 컨테이너가 함께 실행돼.

5. 컨테이너와 볼륨 관리

Docker에서는 데이터를 컨테이너 외부에 저장하기 위해 볼륨을 사용해. 이렇게 하면 컨테이너를 삭제하거나 재시작해도 데이터가 유지돼.

  • 볼륨 생성:
  • docker volume create my-volume
  • 볼륨 사용:
    컨테이너 실행 시 볼륨을 마운트할 수 있어:
  • docker run -d -v my-volume:/app/data my-python-app
  • 볼륨 확인:
  • docker volume ls
  • 볼륨 삭제:
  • docker volume rm my-volume

6. 이미지 배포

Docker 이미지를 다른 사람과 공유하거나 배포하려면 Docker Hub에 이미지를 푸시할 수 있어.

  • Docker Hub에 로그인:
  • docker login
  • 이미지 태그 지정:
  • docker tag my-python-app username/my-python-app:latest
  • 이미지 푸시:이제 이 이미지를 Docker Hub에서 누구나 사용할 수 있어.
  • docker push username/my-python-app:latest

결론

이제 Docker의 기본적인 사용법을 이해했어. Docker는 컨테이너화된 애플리케이션을 관리하고 배포하는 데 매우 유용하며, 위의 명령어들을 통해 다양한 작업을 할 수 있어. 처음에는 간단한 프로젝트로 시작하고, 점차 Docker의 고급 기능들을 활용해보는 것이 좋아.

반응형