[docker] Dockerfile로 이미지 만들기

최승언·2022년 10월 13일
0

docker

목록 보기
3/15

현재 회사에선 클라우드를 지원받아 사용하고 있지만, 일반적으로는 docker에 이미지를 만들고 배포하여 사용하기 때문에 내가 만든 django 웹서버를 dockerfile을 통해 이미지를 만들고 배포하는 연습을 해본다.

1. 폴더구성

C:.
| .gitignore
| Dockerfile
| manage.py
| my_settings.py
| README.md
| requirements.txt
+---ats
| | asgi.py
| | settings.py
| | urls.py
| | wsgi.py
| | init.py
| |
+---ats_module
+---media
+---static
| +---images
| ---p
| +---css
| ---js
+---tagging
| | admin.py
| | apps.py
| | models.py
| | tests.py
| | urls.py
| | views.py
| | init.py
| |
| +---migrations
+---templates

2. Dockerfile

FROM python:3.8
ENV PYTHONUNBUFFERED 1
RUN apt-get -y update
RUN apt-get -y install vim default-jdk
RUN mkdir /srv/code
ADD . /srv/code

WORKDIR /srv/code
RUN python3 -m pip install --upgrade pip
RUN pip install -r requirements.txt
  • FROM: 베이스가 되는 도커이미지 dockerhub에 있는걸 써도되고 내가 만든 이미지를 써도 되는데 여기에 적힌 이미지는 빌드할 때 같이 받아진다.
  • ENV: 환경변수
  • RUN: 빌드시 실행할 커맨드. 주로 특적 소프트웨어를 설치하기 위해 사용.
  • ADD: COPY와 비슷한 현재 로컬에 있는 파일이나 디렉토리를 docker안에 복사.(압축파일을 복사한다면 압축해제 하는 기능도 있다고 함.)
  • WORKDIR: 작업 디렉토리 변경.(cd와 비슷한 기능)

외에도 자주쓰는 명령문이 있지만 그건 아래 블로그에서 확인.

https://www.daleseo.com/dockerfile/

3. 빌드 및 접속

docker build -t <이미지명> .
docker run -p 8000:8000  <이미지명>

build에서 -t 옵션을 통해 원하는 이미지명을 붙여줄 수 있다.
이미지 실행시 나는 주로 run보다는 exec 명령어를 통해 접속하는 것을 선호한다.

docker exec -it <id> /bin/bash

끝.

profile
작업하다가 막힌부분을 기록하는 곳.

0개의 댓글