본문 바로가기
Python

Docker container에서 아나콘다 실행 및 기본 설정

by 187cm 2024. 2. 27.
반응형

Docker container 생성.

docker run -it --gpus all -p 88**:8888 --name yhna_pytorch4 --shm-size 256G -v /data:/home/yhna/data -v /data2/yhna/:/home/yhna/ pytorch/pytorch:latest

 

실제 ex)

docker run -it --gpus all -p 8818:8888 --name yhna_pytorch_runtime_v2 --shm-size 256G -v /data:/home/yhna/data -v /data2/yhna/:/home/yhna/ -v /data_AIoT6:/home/yhna/data_AIoT6/ -v /data_OL:/home/yhna/data_OL/ pytorch/*

 

1. 88**:8888 -> 포트 설정 ** 안먹으면 그냥 임의 숫자 가능

2.  yhna_pytorch4 -> 컨테이너 이름

3. 256G -> shared memory 용량, 기본 64M, 작게 설정하면 학습하다가 혼자서 꺼지는 기가막히는 현상 경험 가능.

4. /data:/home/yhna/data -> mount경로

5. pytorch/pytorch:latest  가져올 이미지 / 모르겠으면 pytorch 혹은 Tensorflow치고 탭누르면 가능한 버전 나오는거 설치

++ 설치 시 runtime버전과 devel버전이 존재하는데, LLM 과 같은 모델을 돌리기 위해서는 nvcc 설치를 필수로 요구하므로 devel 이 붙어있는 것을 설치하기를 권장한다. 

나는 버전에 맞게 pytorch/pytorch:2.2.1-cuda11.8-cudnn8-devel를 설치해 주었다.

 

Anaconda 설치하기

1. 필수 패키지 설치

apt-get update

apt-get install wget -y

apt-get install vim -y

cd /home/yhna

 

2. 아나콘다 다운로드 및 실행

# anaconda 파일 wget으로 web에서 가져와서 다운로드
# 이미 파일 존재하면 skip 가능 
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh 

# sh로 파일 실행
sh Anaconda3-2021.05-Linux-x86_64.sh

 

3. 실행 시 location 지정

- 우선 [Space bar] 키를 눌러서 빠르게 skip 해주고

- yes를 입력해서 동의를 한다. 

- 그리고 난 후 경로 지정을 하는데, 아래와 같이 설정해주거나 

location=/home/yhna/anaconda3

- 도커 컨테이너마다 각각의 아나콘다 (가상환경) 을 설치해서 다양하게 사용하고 싶다면 아래와 같이 설정하자

   - anaconda_envs라는 폴더를 만들고 그 아래에 각각 아나콘다 폴더의 이름을 설정해주면 된다. 예시는 아래 참조.

location=/home/yhna/anaconda3
location=/home/yhna/anaconda_envs/anaconda3
location=/home/yhna/anaconda_envs/llava_envs
location=/home/yhna/anaconda_envs/shhs_ahi

다음과 같이 각 환경에 맞는 library를 설치하고 싶을 경우, 이렇게 독립된 환경을 만들어줄 수 있다. 

 

환경변수 설정

어떤 경로에서든 아나콘다를 실행할 수 있도록. 아래와 같이 파일 설치

 

pip install vi

vi ~/.bashrc

 

page down 혹은 화살표 아래 버튼을 눌러서  Conda initialize 부분으로 이동한다.

 

맨 마지막 줄에 입력해야하는 경로는 위에서 설명한 두 가지가 존재한다.

export PATH=”/home/yhna/anaconda3/bin:$PATH”

만약 위에서 /home/yhna/anaconda3/ 가 아닌, /home/yhna/anaconda_envs/shhs-ahi 와 같이 작성하였다면 

export PATH=”/home/yhna/anaconda_envs/shhs-ahi/bin:$PATH” 를 입력해준다

 

사실 가장 간단한건 vi ~/.bashrc를 실행 시킨 후 page down을 통해 밑으로 내려가서 if문에 들어가 있는 주소를 

export PATH와 함께 넣으면 된다. 

 

wq! 를 눌러서 저장하고 빠져 나오면

 

아래의 명령어를 입력 해서 최종으로 적용

source ~/.bashrc

 

jupyter notebook 실행 방법

원격으로 주피터 노트북 연결

-> 우선 주피터 노트북 설치 

 

pip install jupyter

 

jupyter notebook --generate-config -y

 

>> ipython

# ipython 환경에서 실행
In [1] :from notebook.auth import passwd

In [2] :passwd()
>>>>> Enter password:
>>>>> Verify password:

Out[2]: 'argon2:$argon2id$.....' # 이 부분을 복사해두어야 합니다 !

In [3]: quit()

 

 

cd /root/.jupyter

vi jupyter_notebook_config.py

 

다음과 같이 아래의 두번째 줄에 여백을 만들고 (그냥 엔터 누르면 된다) 그리고 아래의 c = ... 하는 명령어를 삽입한다.

아 물론 중간의 argon은 위에서 저장한 이상한 문자열을 붙여넣는다.

 

c=get_config()

c.NotebookApp.ip='localhost'
c.NotebookApp.open_browser=False
c.NotebookApp.password='argon2:$argon2......'
c.NotebookApp.password_required=True
c.NotebookApp.port=8888
c.NotebookApp.iopub_data_rate_limit=1.0e10  
c.NotebookApp.terminado_settings={'shell_command': ['/bin/bash']}

 

이제 cd /home/yhna 와 같이 main dir로 복귀

 

시작.

jupyter notebook --ip 0.0.0.0 --allow-root

 

반응형