본 페이지에서는 Ubuntu 22.04에서 Docker를 설치하고, nvidia-docker를 설치까지 다루겠습니다.
들어가기 전 본 페이지에서는 Docker Desktop이 아닌, Docker Engine을 설치합니다.
Get Started | Docker
Install Docker Desktop on Ubuntu <- 도커 데스크탑 설치 시 참고
Install Docker Engine on Ubuntu
도커를 설치하기 전, 도커 저장소를 설정해야합니다.
apt
repo# 업데이트 및 apt가 HTTPS를 사용할 수 있도록 해주는 패키지 설치
$ sudo apt-get update
$ sudo apt-get install ca-certificates curl gnupg
# 도커 공식 GPG키 추가
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Set up Repository
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 업데이트
$ sudo apt-get update
# 최신 버전이 설치됩니다.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
도커를 사용하려면, 루트 사용자의 권한이 필요합니다.
하지만, 일일히 sudo를 입력하기 귀찮으니, sudo 없이 사용할 수 있도록 설정하겠습니다.
$ sudo usermod -a -G docker $USER
# 이후 재부팅
$ id
uid=1000(gyu) gid=1000(gyu) groups=1000(gyu),..생략..,999(docker)
# 출력에 docker가 있는지 확인합니다.
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
&& \
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
Configure the container runtime
sudo nvidia-ctk runtime configure --runtime=docker
# nvidia-ctk 명령어로 /etc/docker/daemon.json 파일 생성 후 수정
Restart Docker daemon
sudo systemctl restart docker
Configure the container runtime "containerd"
sudo nvidia-ctk runtime configure --runtime=containerd
# 위와 같음. /etc/containerd/config.toml을 수정함
Restart Docker daemon
sudo systemctl restart containerd
CRI-O는 사용하지 않기에 추가하지않음.
docker의 기본 런타임을 nvidia로 수정
sudo vi /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
도커의 기본 경로는 /var/lib
에 위치합니다. 만약, /
에 용량을 적게 할당했거나, 다른 볼륨에서 도커 이미지, 컨테이너 등을 사용하고 싶다면 이 방법을 사용합니다.
docker 기본 경로 확인
docker info | grep Root
Docker Root Dir: /var/lib/docker
docker 기본 경로는
/var/lib/docker
도커 기본 저장 경로 변경
sudo systemctl stop docker
sudo vi /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"data-root": "/path/to/location", <-- 이 곳에 원하는 경로를 입력합니다.
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
sudo systemctl daemon-reload
sudo service docker restart
# 확인
docker info | grep Root
덕분에 문제를 해결했습니다! 감사합니다~