Docker image와 container 만들기

2023. 5. 2. 11:34· Django/인프라
목차
  1. 도커
  2. 도커 이미지 만들기 - Dockerfile
  3. 프로젝트 생성 
  4. 도커 컨테이너 만들고 실행하기 - docker-compose.yml
  5. Dockerfile이나 이미지 파일의 변경
반응형

도커

도커는 컨테이너 기반의 가상화 플랫폼으로, 애플리케이션을 컨테이너화하여 개발, 배포 및 실행을 편하게 해 줍니다. Docker 이미지는 애플리케이션을 실행하는데 필요한 모든 것들을 포함하는 패키지이며 컨테이너는 Docker 이미지를 실행할 때 생성됩니다.

 

pipenv를 통해 Pipfile,postgresql을 이용해서 Dockerfile를 생성하였습니다.

 

 

도커 이미지 만들기 - Dockerfile

도커 이미지를 만들기 위해서는 먼저 Dockerfile이라는 파일을 작성해야 합니다.

더보기

FROM python:3.9.6

RUN apt-get update && apt-get install -y nano vim && pip install psycopg2-binary

WORKDIR /weheproject

ENV PYTHONUNBUFFERED 1

COPY Pipfile Pipfile.lock ./

RUN pip install -U pipenv
RUN pipenv install --system --dev

Dockerfile을 작성 후 아래의 명령어를 통해 이미지를 빌드합니다.

docker build --tag appname .

그 이후 docker desktop에 들어가 보면 appname이라는 이름의 이미지를 만들어줍니다. 맨 마지막의 "."은 Dockerfile이 저장된 경로를 입력해 주면 됩니다.

 

 

 

프로젝트 생성 

만약 프로젝트 폴더 안에 django 프로젝트가 없다면 생성해줘야 합니다.

django-admin startproject config .

 

 

도커 컨테이너 만들고 실행하기 - docker-compose.yml

docker-compose.yml을 작성합니다. docker-compose.yml을 통해서 여러 개의 컨테이너를 정의하고 실행할 수 있습니다.

더보기

version: "3.8"

services:
app:
build:
context: .
volumes:
- .:/weheproject
ports:
- "8000:8000"
image: app:weheproject
container_name: weheproject_container
command: python3 manage.py runserver 0.0.0.0:8000
depends_on:
- db
restart: always

db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
container_name: POSTGRES_DB

이후 settings.py의 database부분도 수정해 줍니다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'POSTGRES_DB',
        'PORT': 5432,
    }
}

이제 docker-compose.yml에 정의된 모든 서비스를 시작해 주는 명령어는 아래와 같습니다.

docker-compose up

아래의 명령어를 통해 실행 중인 컨테이너를 중지할 수 있습니다.

docker-compose down

 

 

Dockerfile이나 이미지 파일의 변경

만약 Dockerfile이 변경되었을 경우 컨테이너를 재 빌드해야 합니다.

docker-compose up --build
반응형
저작자표시 (새창열림)

'Django > 인프라' 카테고리의 다른 글

[AWS Lightsail] 리눅스 가상머신 생성  (0) 2024.08.06
가상머신 VS 컨테이너  (0) 2023.12.18
docker - getting disk info ... permission denied 에러  (0) 2023.05.04
Docker - 네트워크 연결과 명령어, index.html 수정  (0) 2023.04.18
Docker - 개념과 간단한 명령어  (0) 2023.04.18
  1. 도커
  2. 도커 이미지 만들기 - Dockerfile
  3. 프로젝트 생성 
  4. 도커 컨테이너 만들고 실행하기 - docker-compose.yml
  5. Dockerfile이나 이미지 파일의 변경
'Django/인프라' 카테고리의 다른 글
  • 가상머신 VS 컨테이너
  • docker - getting disk info ... permission denied 에러
  • Docker - 네트워크 연결과 명령어, index.html 수정
  • Docker - 개념과 간단한 명령어
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351)
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
Docker image와 container 만들기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.