본문 바로가기
728x90
반응형
SMALL

Docker33

[Docker] ubuntu 파일 복사 ubuntu → container host에서 docker cp 명령으로 진행한다. docker cp (이동할 폴더의 절대경로)/. (컨테이너 name):(컨테이너 내 파일들을 받을 폴더의 절대 경로) 폴더가 아닌 파일을 옮길 때는 /. 대신에 해당 /파일명을 입력한다.  container → ubuntu host에서 docker cp 명령으로 진행한다. docker cp (컨테이너 name):(컨테이너 내에서 이동시킬 파일의 절대 경로) (Ubuntu에서 파일을 복사받을 폴더의 절대경로) 컨테이너 및 이미지 삭제 docker stop [container_name]docker rm [container_name]docker rmi [image_name] 캐시된 빌드 삭제 docker builder prune 2024. 8. 14.
[MLops] 데이터베이스 MySQL 컨테이너 기존 mlops 컨테이너와 동일한 네트워크로 설정하여 통신하도록 생성한다. docker run -itd --name my-mlops-db --network mlops -e MYSQL_ROOT_PASSWORD=root mysql:8.0.39 그 다음, 컨테이너에 진입하여 mlops 데이터베이스 생성한다. # 컨테이너 진입docker exec -it my-mlops-db bash# MySQL 로그인mysql -u root -p # root 패스워드 입력# 데이터베이스 생성create database mlops;# 생성 확인show databases;# 패스워드 인증 방식 변경(python mysqlclient 라이브러리 호환성)alter user 'root'@'%' identified .. 2024. 8. 13.
[MLops] 모델 추론 src/main.py 모델 확장 파일을 pth로 지정한다. model_ext = "pth"python src/main.py train --model_name movie_predictor --optimizer adam --num_epochs 20 --lr 0.002  src/utils/utils.py torch.save는 내부적으로 pickle을 사용해 직렬화 (마샬링) 후 저장하게 된다. 이는 보안적 취약점으로 작용하게 된다. 따라서, 최소한의 검증 절차인는 sha256 해시 알고리즘을 통해 변조 여부를 최소한으로 확인한다. import osimport randomimport hashlibfrom datetime import datetimeimport numpy as npimport torchdef pa.. 2024. 8. 13.
[MLops] 모델 저장하기 라이브러리 설치 ONNX 포맷으로 저장하기 위해 다음을 실행한다. 그리고 Fire 라이브러리를 활용하면 task 별로 필요한 인자를 설정하여 CLI 기반 프로그램을 쉽고 빠르게 만들 수 있다. task를 분리하면 다양한 장점이 있다 (필요한 태스크만 수행, 트러블 슈팅 및 디버깅 용이, 유연한 자원 할당, 유지보수성, 워크플로우 관리 등). pip install onnx onnxruntime fire src/model/movie_predictor.py torch(pth) 포맷으로 저장하기 아래 코드를 추가한다. import osimport datetimeimport torchfrom src.utils.utils import model_dirimport torch.nn as nnclass MoviePred.. 2024. 8. 12.
[MLops] 모델 학습 및 평가 디렉토리 설정 docker exec -it my-mlops bash opt 디렉토리에서 mlops-movie-predictor 디렉토리를 생성한다. mkdir mlops-movie-predictor 그 다음, mlops-movie-predictor 디렉토리로 이동하고 dataset과 src 디렉토리를 생성한다. 또, src 디렉토리에서 utils, dataset, model, train, evaluate 디렉토리를 생성한다. 라이브러리 설치 pip install torch numpy==1.26.4 pandas scikit-learn tqdm src/utils/utils.py import osimport randomimport numpy as npimport torchdef init_seed(): n.. 2024. 8. 12.
[MLops] Docker에서 MLops 네트워크 구성 네트워크 할당  커스텀 네트워크에 도커 컨테이너를 할당하기 위해 호스트와 컨테이너 네트워크를 구성한다. docker network create --gateway 172.20.0.1 --subnet 172.20.0.0/24 mlops python 컨테이너 docker run -itd --name my-mlops --network mlops python:3.11-buster docker ps로 컨테이너가 올라갔는지 확인한다.  bash 그 다음, bash로 접근하여 패키지 관리자 최신화를 위해 apt 업데이트한다. apt install -y vim wgetcat /etc/os-release 2024. 8. 9.
[Docker] Package 'docker-ce' has no installation candidate Package 'docker-ce' has no installation candidate  우분투 환경에서 docker 커맨드를 찾지 못하는 경우에 다음 명령어를 실행한다. $ sudo apt-get update$ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"$ apt-get u.. 2024. 6. 19.
[Apache Airflow] Postgre DB 추가 Postgre 인스턴스 추가 로컬에서 docker-compose.yaml 파일을 다음과 같이 수정한다. services: postgres_custom: image: postgres:13 environment: POSTGRES_USER: 이름 POSTGRES_PASSWORD: 비밀번호 POSGRES_DB: 데이터베이스 TZ: Asia/Seoul volumes: - postgres-custom-db-volume:/var/lib/postgresql/data ports: - 5432:5432 # 외부에서 접속할 수 있도록 포트 노출volumes: postgres-db-volume: postgres-custom-db-volume: #.. 2024. 6. 18.
[Apache Airflow] Python 오퍼레이터 Python 오퍼레이터 파이썬 함수를 실행시킬수 있는 오퍼레이터이며, 가장 많이 사용되는 오퍼레이터 중 하나이다. dags 디렉토리를 기본적으로 sys.path에 추가해주고 있기 때문에 dags 디렉토리에 dag 파일을 가져다 놓기만 해도 airflow는 DAG 인식이 가능하다. 뿐만 아니라 config, plugins 디렉토리도 sys.path에 추가해 주고 있으므로 파이썬 공통 모듈이나 설정 파일은 plugins 디렉토리 또는 config 디렉토리 안에 만들어 놓으면 dag에서 import하여 사용 가능하다. dags_python_operator.py  from airflow import DAGimport pendulumfrom airflow.operators.python import PythonOp.. 2024. 6. 17.
[AWS] 도커 PostgreSQL 배포 PostgreSQL 이미지 docker image pull postgresdocker image ls PostgreSQL 컨테이너 실행  docker container run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres docker container ls PostgreSQL 컨테이너 내부 docker container exec -it {컨테이너 ID} /bin/bashpsql -U postgresALTER USER postgres WITH PASSWORD 'postgres';CREATE DATABASE ml; \listpostgres=# \qexit  데이터 보관 docker container stop {컨테이너 ID}do.. 2024. 6. 11.
728x90
반응형
LIST