본문 바로가기

AI

도커 Basic

목적 : 특정한 환경에서 돌린 딥러닝 모델을 실습용으로 배포하기 위함. (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' 카테고리의 다른 글