4.1 docker 설치 (Nvidia GPU 불필요시)
yum install -y yum-utils
yum update
yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
>docker --version
Docker version 23.0.1, build a5ee5b1
재부팅시 자동 기동 되도록 설정
>systemctl enable docker.service
서비스 시작
>systemctl start docker.service
상태 확인
>systemctl status docker.service
4.2 docker 설치 (Nvidia GPU 사용)
4.2.1 도커 버전 지정하여 설치하기
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
Nvidia-toolkit을 사용하려면 도커 버전을 무조건 최신으로 쓰면 안되고 Nividia runtime을 지원 하는 버전을 확인하여 설치해야 한다
여기서는 20.10 버전을 설치한다.
(1)기존 버전 삭제
>yum remove docker-ce*
(2)가능한 도커 버전 확인
>yum list docker-ce --showduplicates | sort -r
아래와 같은 방법으로 버전별 설치가 가능하다.
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
nvidia-toolkit 이 지원가능한 20.10.12 버전으로 재설치
>yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io
변경된 버전 확인
4.2.2 Nvidia container toolkit 설치
Nvidia GPU를 사용할 수 있는 컨테이너를 생성하기 위해서는 nvidia-container-toolkit 을 설치해야 한다.
(1)Repo 등록
여기서는 rocky8.7에 설치 중이므로 rhel8.7로 입력한다.
>curl -s -L https://nvidia.github.io/nvidia-docker/rhel8.7/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
>yum clean expire-cache
>yum update -y
(2)Nvidia Toolkit 설치
>yum -y install nvidia-container-toolkit
>yum install -y nvidia-docker2
(3)Docker 데몬 재시작
>systemctl restart docker.service
4.3 Docker daemon 설정 하기
4.3.1 이미지/컨테이너 저장 위치 변경
도커는 기본적으로 설치하면 /var/lib/docker로 기본 패스가 설정되어 docker 이미지나 컨테이너 생성시 해당 위치를 사용하게 된다.
하지만 일반적으로 /var가 속한 파티션은 크기가 크지 않아 많은 도커를 운용할 때 디스크 용량 문제에 부딛히게 된다.
여기서는 /home/docker 패스에 1T SSD를 마운트 하여 도커 전용으로 사용하기 위해 /var/lib/docker기본 패스를 변경하여 /home/docker/docker_data에서 이미지와 컨테이너 데이터를 관리하도록 변경한다
>mkdir -p /home/docker/docker_data
>vi /etc/docker/daemon.json
파일 수정 (없으면 생성)
[root@localhost docker]# vi daemon.json
{
"graph":"/home/docker/docker_data",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
변경 내용 적용 및 확인
> systemctl stop docker.service
> systemctl start docker.service
> docker info