4. docker-day2-4-Hangman 서비스를 Dockerization하기

data_hamster·2023년 6월 24일
0

학습주제

학습내용


LABEL -> docker inspect로 확인 가능
LABEL 키,벨류 포맷으로 작성함. 포맷이 정해져 있진 않음.

FROM python:3.8-slim-buster
LABEL Maintainer="kjw9684k@gmail.com"
WORKDIR /app
COPY app.py ./
COPY requirements.txt ./
RUN pip3 install -r requirements.txt
EXPOSE 4000
CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0", "--port=4000"]

CMD 파이썬 리스트 형태로 적어줄 수 있음. 최종적으론 공백문자 형태의 스트링으로 실행될 것임.
expose 4000. 컨테이너 실행시 4000번 포트를 쓰고 있다는걸 알림. 동작엔 영향이 없음. 사람에게 알려주는 역할임.

WORKDIR를 /app 했기 때문에 목적지쪽은 기본 app 폴더로 고정됨.

LABEL, EXPOSE는 부가정보임. 실제 실행에 연관 X


docker build -t kjw9684k/hangman_web .

docker image ls

어떤 내용이 있는지 inspect 사용해본다
docker inspect kjw9684k/hangman_web

들어가있음.
전체적인 메타데이터들이 보이는거 같음.


포트 매핑을 하지 않고 돌려봄

컨테이너 안에서만 열린거지, 바깥과 연결되지 않음

docker run -p 4000:4000 kjw9684k/hangman_web

docker ps를 보고
이 컨테이너 아이디를 복사해서 지워보자.
docker stop 컨테이너ID
혹은 UI에서 멈출 수도 있음

docker run -p 4000:4000 kjw9684k/hangman_web
이렇게 하면 컨테이너가 끝날때까지 기다린다 어떨때는 번거로움. detatch
-d를 주면 백그라운드에서 돌게됨

바로 끝난것처럼 뜸

docker ps를 해보면
컨테이너 단에 올라온 걸을 볼 수 있음.

만들었던 이미지를 도커 허브로 push 해본다
이미 숙제 제출로 만들어봤지만, 이번엔 리포를 만들지 않고 push를 바로 해본다.

정상적으로 push 됨.
새로고침을 하면 리포가 생성된 것을 볼 수 있다.

도커 랩스에서 이 리포를 받고 실행시켜본다.
docker run -p 4000:4000 kjw9684k/hangman_web

포트 매핑을 했기 때문에
링크를 누르거나 포트를 열면 정상적으로 웹페이지가 뜬다.

profile
반갑습니다 햄스터 좋아합니다

0개의 댓글