목적 : 특정한 환경에서 돌린 딥러닝 모델을 실습용으로 배포하기 위함. (Linux)
- 베이스가 되는 도커이미지 찾아서 pull 하기.
gpu, cpu, 환경에 맞는 걸로 찾기. devel이 개발하기에 적합하다는 말이 있어서 다운 받긴 했는데, 9GB정도로 큼.
docker pull nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04
- 중간 중간 설치된 컨테이너, 이미지 확인해보기
docker ps -a
docker images
- 도커 컨테이너 run 하기
docker run [options] image [:tag] [command] [arg..]
- 필수 패키지 설치하기
apt-get update
apt-get install apt-transport-https ca-certifacates curl gnupg-agent software-properties-common
- GPG Key 인증
curl -fsSL https://download.docker.com/linux/ubuntu/gg | sudo apt-key add -
- Docker run
docker run [options] image [:tag|@Digest] [command] [arg..]
options | |
-d | 백그라운드 모드 |
-p | 호스트와 컨테이너 포트 연결 |
-v | 호스트와 컨테이너 디렉토리 연결 |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
--name | 컨테이너 이름 설정 |
--rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | -i 와 -t를 동시에 입력한 것으로, 터미널을 위한 옵션 |
- 실행중인 컨테이너 접속시, run이 아니라 exec 사용
docker exec -it [container] /bin/bash
이제 자기 환경에 맞게 필요한 것들로 설치해주면 된다.
- nvidia docker 설치
- 저장소 / GPG key 설정
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
- 설치
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2
* 설치 후에는 docker restart 필요.
- vim, wget 설치
apt-get update
apt-get vim
- git 설치
apt-get update
apt-get git
- conda 설치
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
bash Anaconda3-2023.03-Linux-x86_64.sh
source ~/.bashrc
- 가상환경 만들고 activate 하기
conda create --name [가상환경 이름] [python=버전명]
- git clone 하기
git clone [repository url]
- bazel 설치
#필요한 패키지 설치
apt-get install pkg-config zip g++ zlib1g-dev unzip python3
#버전/bazel-버전 -installer-linux-x86_64.sh 형식으로 원하는 버전 다운로드
wget https://github.com/bazelbuild/bazel/releases/download/0.24.1/bazel-0.24.1-installer-linux-x86_64.sh
# bazel 설치
chmod +x bazel-0.24.1-installer-linux-x86_64.sh
./bazel-0.24.1-installer-linux-x86_64.sh
# 환경변수 설
export PATH="$PATH:$HOME/bin"
- 외부에서 ssh 로 접속
- 컨테이너가 활성된 상태이어야 함.
ssh -p [port_num] root@IP
- 컨테이너에 누가 접속해있는지 확인하기
who
- 컨테이너 삭제 / 이미지 삭제
docker rm container [container id], [container id] # 여러개 삭제도 가
# 컨테이너 삭제한 뒤 이미지 삭제하는 경우
docker rmi [image id]
# 컨테이너 삭제하기 전 이미지 삭제하는 경우
docker rmi -f [image id]
'AI' 카테고리의 다른 글
Generative Models (pixel rnn/cnn, VAE, GAN) (0) | 2024.06.03 |
---|