Django 설치만 하고 기본 페이지 나오는 것을 바탕으로 Docker Hub에 올려보기로 한다.
Dockerfile을 통해 image를 만든다. 본인은 Windows를 사용하기에 기본 base를 우분투 사용
1. Djangoproject 만들기
python manage.py runserver
실행시킨 후 기본 페이지가 나오나 확인!
2. Dockerfile 작성
FROM ubuntu
MAINTAINER 이름 <이메일>
RUN apt-get update
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN apt-get install -y python3-pip python3-dev
RUN pip3 install --upgrade pip
RUN pip3 install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
처음에 dockerfile이 확장명인줄 알고 헛짓거리 했다는...
※ 저는 manage.py 있는곳에 Dockerfile을 썼는데 위치가 다르신분들은 옮겨주셔야합니다.
- Dockerfile 문법
FROM : 어떤 이미지를 기반으로 이미지를 생성할지 정함. 없다면 docker hub에서 검색함
MAINTAINER : 이미지를 생성한 사람의 정보 설정
RUN : FROM에서 설정한 이미지 위에서 명령 실행
WORKDIR : 명령들이 실행될 디렉터리 설정
COPY : 파일을 이미지에 추가 .dockerignore 파일로 설정한 것들은 제외됨
EXPOSE : 호스트와 연결할 포트 번호 설정인데 외부에 노출은 되지 않아서 DOCKER RUN 명령에서 -P 옵션을 사용하여 지정해 주어야함
CMD : 컨테이너가 시작되었을때 실행됨
3. image 만들기
docker build --tag dockerdjango .
태그 이름은 자유!
dockerdjango, ubuntu 2가지 image가 생성됩니다.
4. container 실행
docker container run -p 8000:8000 --rm dockerdjango
-p가 port 옵션인데 <host 포트> : <container 포트> 입니다.
위에서 8000번으로 돌렸으니깐 뒤에 container 포트는 8000을 해야겠죠?
--rm 은 컨테이너가 종료됨과 동시에 자동으로 삭제되게 할 수 있는 옵션입니다.
5. localhost:8000 접속!
기본페이지가 똑같이 나온다면 성공!
6. Docker Hub에 repository 생성
6. docker login 하기
docker login
docker hub id랑 비번 치시면 됩니다.
7. image에 태그 달기
docker tag dockerdjango 도커아이디/레파지토리이름:태그
8. push
docker push 도커아이디/레파지토리이름:태그
dockerhub에 잘 들어갔는지 확인하시면 완료입니다!
최근댓글