hgk0404
hgk0404.tistory
hgk0404

공지사항

전체 방문자
오늘
어제
  • 전체 카테고리
    • [컴퓨터비전]
    • [Computer Science]
      • [컴퓨터네트워크]
      • [알고리즘]
      • [자료구조 in C]
      • [C & C++]
      • [이산수학]
      • [Math]
    • [머신러닝]
      • [Numpy, Pandas]
    • [Cloud]
      • [AWS]
      • [NCP]
      • [Kubernetes]
      • [Terraform]
    • [Dev]
      • [가상환경]
      • [Linux]
      • [Docker]
    • [Python]
    • [Coding Test]
      • [백준]
      • [프로그래머스]
      • [SQL]
    • [WEB]
    • [자격증, 일상]
    • [엑셀]
    • [금융]

인기 글

최근 글

최근 댓글

250x250
hELLO · Designed By 정상우.
hgk0404

hgk0404.tistory

[Docker] 도커 기본 명령어
[Dev]/[Docker]

[Docker] 도커 기본 명령어

2023. 12. 11. 17:48
728x90

flask 어플리케이션을 도커를 이용하여 로컬에서 실행해 보겠습니다.

 

일단, 보기 편하게 Docker Desktop을 설치해 줍니다.

 

https://www.docker.com/products/docker-desktop/

 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

 

이 곳에서 본인의 운영체제에 맞는 도커 데스크탑을 설치하여 GUI 환경에서 컨테이너를 쉽게 확인하시기 바랍니다. 로그인은 구글 아이디로 가능합니다.

 

 

1. 폴더 구성하기

 

 

저의 디렉토리 구성은 다음과 같습니다.

docker_test/
|-- app.py
|-- Dockerfile
|-- requirements.txt
# docker_test 디렉토리 아래에 3개의 파일이 존재

 

# app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask in Docker!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=True)

 

# requirements.txt

Flask>=2.0.1

 

# Dockerfile

# 베이스 이미지로부터 시작
FROM ubuntu:20.04

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

# 현재 디렉토리의 파일들을 컨테이너의 작업 디렉토리로 복사
COPY . /app

# 필요한 우분투 패키지 및 Python 설치
RUN apt-get update
RUN apt-get install -y python3
RUN apt-get install -y python3-pip

# Flask를 최신 버전으로 업데이트
RUN pip3 install --no-cache-dir --upgrade Flask

# requirements.txt 파일이 있다면 해당 파일에 기록된 패키지들을 설치
RUN pip3 install --no-cache-dir -r requirements.txt

# Flask 어플리케이션 실행
CMD ["python3", "app.py"]

Dockerfile은 비어있는 txt파일을 하나 만들고 확장자를 지운 후 이름을 "Dockerfile"이라고 변경하면 됩니다.

 

 

2. 실행하기

 

 

2-1. 이미지 빌드

docker_test 폴더에서 터미널을 열어 이미지를 빌드해 줍니다.

 

# 이미지 빌드
docker build -t <당신의 이미지 이름> .

<> 꺽쇠 안의 문자는 이미지의 이름을 의미하므로 본인이 원하는대로 변경해 주세요.

그리고 마지막 . 은 꼭 작성해 주셔야 합니다. 현재 디렉토리에서 실행한다는 의미입니다.

 

2-2. 컨테이너 실행

# 컨테이너 실행
docker run -p 5000:5000 <당신의 컨테이너 이름>

왼쪽의 5000은 호스트의 포트, 오른쪽의 5000은 컨테이너의 포트, 호스트의 5000번과 컨테이너의 5000번 포트를 연결한다는 뜻. 이제 http://localhost:5000으로 접근할 때 Docker는 해당 요청을 컨테이너의 5000번 포트에 전달하여 flask 어플리케이션에 연결

 

 

그 외 명령어

 

도커 이미지 확인
docker images

도커 컨테이너 확인
docker ps -a

도커 이미지 삭제
docker rmi <images-id>

도커 컨테이너 삭제
docker rm <container-id>

 

# 컨테이너 실행
docker start <my-container-id>

# 종료
docker stop <my-container-id>

 

# 실행 중인 컨테이너의 상태 확인
docker exec -it <container-id> ls /app

 

 

 

 

728x90
저작자표시 동일조건 (새창열림)

'[Dev] > [Docker]' 카테고리의 다른 글

[Docker] 도커 빌드 캐시 공유 가능한 명령어, 공유 불가 명령어  (2) 2024.03.08
[Docker] Docker cache 빠른 빌드  (0) 2024.03.08
[Docker] 도커파일 기본설정 ubuntu, alpine, python:3.9-slim  (0) 2024.03.05
[Docker] 도커의 이미지, 컨테이너는 무엇일까?  (2) 2023.11.26
'[Dev]/[Docker]' 카테고리의 다른 글
  • [Docker] 도커 빌드 캐시 공유 가능한 명령어, 공유 불가 명령어
  • [Docker] Docker cache 빠른 빌드
  • [Docker] 도커파일 기본설정 ubuntu, alpine, python:3.9-slim
  • [Docker] 도커의 이미지, 컨테이너는 무엇일까?
hgk0404
hgk0404
공부기록

티스토리툴바