Data Engineering/Docker 11

[Linux/Docker] Flask로 구현한 챗봇을 Docker와 Render를 이용해 배포해보자 (1) - 실패

사이드 프로젝트로 KoGPT2를 활용해 "면접 도우미 챗봇"을 개발하기로 했다. 개발 환경: VSCode 일단 데이터랑 모델 학습에 대해서는 나중에 이야기해보도록 하고.. Flask로 구현한 챗봇을 Docker 이미지로 만들고, Render를 이용해 Public한 url로 배포해볼 생각이다.(간단한 프로젝트이기도하고, 과금을 할 수가 없는 상황이라 무료로 사용할 수 있는 Render를 활용했다.) https://render.com/ Cloud Application Platform | RenderOn Render, you can build, deploy, and scale your apps with unparalleled ease – from your first user to your billionth.r..

[Windows/Docker] Windows에 WSL2를 기반으로 Docker Desktop 설치해보자

로컬 환경에서 MongoDB Atlas M0 Tier를 이용해 파이널 프로젝트를 진행하던 중, 512MB라는 용량 제한 문제를 마주하게 되었다.Docker를 이용해 MongoDB 컨테이너를 띄워서 사용하면 용량 문제를 해결할 수 있지 않을까 하는 아이디어를 기반으로 Window 환경에서 Docker를 사용할 수 있도록 세팅을 진행했다.  MongoDB 컨테이너 만드는 과정은 다음 포스팅에  Docker Desktop 설치하기- Docker For Windows 다운로드https://docs.docker.com/desktop/install/windows-install/ Install Docker Desktop on WindowsGet started with Docker for Windows. This gu..

[Ubuntu/Docker] Ubuntu CLI에서 pip을 설치해보자 (의존성 설치 타임 아웃 에러 해결 방법)

MongoDB와 Airflow 컨테이너를 빌드하는 과정에서 위와 같은 에러가 발생했다.에러 내용은 pip 명령어가 패키지를 다운로드 하는 동안 타임 아웃이 발생했다는 것이었다..이 에러는 인터넷 연결이 불안정하거나, 특정 네트워크 조건에서 패키지 다운로드 시간이 오래 걸릴 때 발생할 수 있다고 한다. Airflow에 관련된 Dockerfile에 requirements.txt 파일로부터 의존성을 설치하도록 하는 명령어가 있었다.여기서 문제가 발생한 것 같다. 그래서 컨테이너를 빌드하기 전에 미리 의존성을 로컬 환경에서 다운로드 후, 빌드 시 해당 파일을 사용하는 방법을 사용해보기로 했다. pip download -r requirements.txt -d ./packages Ubuntu에 pip을 설치한 적이..

[Docker] Docker 디스크 사용량 확인하고, 용량 이슈 해결하자

Docker를 이용해 MongoDB와 Airflow 컨테이너를 빌드하던 중 디스크 용량이 꽉 찼다는 이슈가 발생했다.사이드 프로젝트의 의존성 파일인 requirements.txt 파일에서 계속 의존성 충돌이 발생하고 있었다.빌드가 실패하면 다시 파일을 수정하고, 빌드하고 반복했다.그랬더니 빌드 캐시와 기존 이미지로 인해 디스크 용량이 꽉 차버렸다.. 전체 Docker 디스크 사용량 확인하기docker system df모든 Docker 데이터 삭제하기docker system prune -a --volumesBuild Cache 삭제하기docker builder prune --all모든 Docker Image 삭제하기docker rmi $(docker images -q)특정 Docker Image 삭제하기-..

[Linux/Docker] Docker Resistry에 대해 알아보고 이미지를 Push, Pull해보자

도커 레지스트리 (Docker Resistry)도커 레지스트리는 도커 이미지의 저장, 관리, 배포를 위한 시스템이다.도커 이미지와 컨테이너를 사용해 애플리케이션을 컨테이너화하고 배포하는 데에 사용한다  도커 레지스트리 (Docker Resistry) 기본 개념- 도커 이미지 저장소도커 레지스트리는 도커 이미지를 저장하는 중앙 저장소이다. - 이미지 태깅 및 버전 관리도커 이미지는 태그 (tag)를 통해 버전을 관리한다.예를 들어 myapp:latest, myapp:1.0 과 같이 태그를 붙일 수 있다.레지스트리는 이런 태그와 버전을 관리해 필요한 이미지를 쉽게 찾고 가져올 수 있다.4 - 이미지 검색 및 다운로드사용자는 필요한 이미지를 검색하고 로컬 시스템으로 다운로드할 수 있다.  도커 레지스트리 (D..

[Linux/Docker] Sinatra를 사용해보고 Ubuntu 서버에 배포해보자

Sinatra Web Application Library 사용하기- 새로운 디렉토리 생성하기 - 생성한 디렉토리 경로에 Gemfile 생성하기  -> Gemfile은 패키지 관련 파일이다.vi Gemfile - 디렉토리 경로에 app.rb 파일 생성하기   -> Sinatra는 ruby 언어로 만들어져서 .py가 아니고 .rb 확장자 이름으로 파일을 생성해주어야 한다.  bundler 설치 중 다음과 같은 에러가 발생했다. -> 트러블 슈팅 방법      다른 저장소 미러를 생성한다. - Bundle 실행    Gemfile과 BundlerGemfile프로젝트에 필요한 gem과 그에 대한 의존성을 설정하는 파일이다. 패키지 관리자 역할을 한다. Bundlerbundle install 명령어로 Gemfil..

[Linux/Docker] Flask로 app을 만들고 Docker compose로 컨테이너화해보자

Flask 간단히 알아보자Flask는 파이썬 프로그래밍 언어로 작성된 웹 프레임워크이다. 마이크로 프레임워크 (Micro Framework)Flask는 마이크로 프레임워크로, 기본적으로 웹 애플리케이션을 위한 핵심 기능만들 가볍게 포함하고 있다.기본적으로 제공하는 기능은 라우팅, 템플릿 렌더링, 요청 및 응답 처리가 있고, 복잡한 기능은 필요에 따라 확장할 수 있다. 라우팅 (Routing)- URL 매핑: Flask의 라우팅 시스템은 URL과 뷰 함수 (컨트롤러)를 매핑해 사용자가 특정 URL로 접근할 때 해당 뷰 함수가 호출된다.- HTTP 메소드 지원: GET, POST, PUT, DELETE 등의 다양한 HTTP 메소드를 지원해, 다양한 요청을 처리할 수 있다. 템플릿 엔진 (Template En..

[Linux/Docker] Docker Compose 설치하고 WORDPRESS와 MYSQL 컨테이너를 만들어보자

Docker Compose 다운로드 받기- curl -L 명령어를 이용해 docker compose를 다운로드 받는다 - docker compose 파일에 실행 권한을 부여한다. - root 경로에 컨테이너 실습 실행을 위해 새로운 디렉토리를 생성한다. mkdir wp3   WordPress, MySQL 서비스 컨테이너를 만들고 실행해보자 - docker-compose.yml 파일service : 생성될 컨테이너를 묶어 놓은 단위image : 서비스 컨테이너를 생성할 때 사용될 이미지 이름 설정→ 이미지가 도커에 존재하지 않으면 도커 허브에서 자동으로 다운로드기존에 사용했던 docker run 과 같은 개념environment : 서비스 컨테이너 내부에서 사용할 환경 변수 지정→ docker run 명령..

[Linux/Docker] Docker를 설치하고 컨테이너를 실행해보자

Docker Hubhttps://hub.docker.com/_/mysql/ mysql - Official Image | Docker HubQuick reference Supported tags and respective Dockerfile links 9.0.1, 9.0, 9, innovation, latest, 9.0.1-oraclelinux9, 9.0-oraclelinux9, 9-oraclelinux9, innovation-oraclelinux9, oraclelinux9, 9.0.1-oracle, 9.0-oracle, 9-oracle, innovation-oracle, oracle⁠8hub.docker.com Docker 다운로드 및 설치-> rocky 리눅스에서는 위와 같은 명령어를 통해 도커를 설치..

[Linux/Docker] Docker compose에 대해 알아보자

도커 컴포즈 Docker ComposeDocker Compose는 다수의 Docker 컨테이너를 관리하고 배포하기 위해 설계된 도구이다.여러 개의 컨테이너로 구성된 애플리케이션을 쉽게 정의하고 실행할 수 있도록 도와준다.  Docker Compose의 장점- 다중 컨테이너 애플리케이션 관리가 쉽다Compose를 사용하면 여러 개의 컨테이너로 구성된 애플리케이션을 한 번의 명령어로 관리할 수 있다.예를 들어 데이터베이스, 웹 서버, 캐시 서버 등을 함께 정의하고 동시에 실행할 수 있다. - 일관된 개발 환경을 제공한다Docker Compose 파일을 통해 개발, 테스트, 프로덕션 환경 모두에서 일관된 환경을 제공할 수 있다.환경 불일치 문제를 줄일 수 있다. - 빠른 배포와 복원이 가능하다설정이 YAML ..