우분투에서 docker 설치 방법
이번 글에서는 우분투(Ubuntu) 18.04 또는 우분투 16.04에서 도커(Docker)를 설치하는 방법에 대해서 설명드리도록 하겠습니다.
그리고 여러가지 버전의 CUDA Toolkit을 사용할 수 있도록 nvidia-docker를 추가적으로 설치하는 방법에 대해 설명드립니다.
도커는 크게 2가지 에디션 버전으로 나뉩니다.
- Community Edition (CE) : 개발자나 작은 팀들에게 이상적인 버전이며 무료로 사용할 수 있습니다.
- Enterprise Edition (EE) : 엔터프라이즈 개발이나 실제 확장 가능한 서비스를 개발하는 팀에서 사용하기 적합한 유료버전의 에디션입니다.
무료로 사용할 수 있는 도커 CE 버전으로 설치하는 방법을 우분투 환경에서 설치하는 방법을 설명 드리도록 하겠습니다.
설치 환경
도커 설치 환경은 우분투 18.04 입니다. 하지만 우분투 16.04 버전을 포함한 이후 버전에서 동일한 방법으로 설치 가능합니다. 만약 우분투 14.04 버전의 경우 아래의 페이지의 내용을 참고하셔서 설치를 진행해 주시면 될 듯합니다.
https://docs.docker.com/install/linux/docker-ce/ubuntu/
준비
먼저 오래된 버전의 도커가 설치되어 있다면, 아래의 명령어를 사용해서 삭제해 주시기 바랍니다.
$ sudo apt-get remove docker docker-engine docker.io
Code language: JavaScript (javascript)
그리고 아래의 명령어를 사용하여 설치에 필요한 패키지들을 설치해 주시기 바랍니다.
$ sudo apt-get update && sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
Code language: JavaScript (javascript)
패키지 저장소 추가
아래의 명령어를 사용하여 도커의 공식 GPG 키와 저장소를 추가해 주시기 바랍니다.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Code language: JavaScript (javascript)
그리고 아래의 명령어를 사용하여 docker 패키지가 검색되는지 확인해 주시기 바랍니다.
$ sudo apt-get update && sudo apt-cache search docker-ce
Code language: JavaScript (javascript)
만약 현재 우분투 버전에서 설치 패키지가 검색된다면 아래와 같은 내용이 출력될 것입니다.
docker-ce - Docker: the open-source application container engine
도커 CE 설치
그 다음 아래의 명령어를 사용하여 도커 CE 에디션을 설치해 주시면 됩니다.
$ sudo apt-get update && sudo apt-get install docker-ce
Code language: JavaScript (javascript)
그리고 일반 사용자계정으로 docker 명령어를 사용하기 위해서는 아래의 명령어로 그룹을 추가해 주시면 됩니다.
아래의 명령어는 ubuntu라는 사용자를 docker그룹에 추가하는 내용입니다.
$ sudo usermod -aG docker $USER
Code language: PHP (php)
위의 명렁어를 사용하여 일반 사용자를 docker 그룹에 추가하지 않았을 경우, 일반 사용자로 docker 명령어 실행시 아래와 같은 오류가 발생 할 수 있습니다.
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied
Code language: JavaScript (javascript)
따라서, 일반 사용자에서 docker 명령어 실행 시 permission denied 오류가 발생하지 않도록 사용자 그룹을 추가해 주시기 바바랍니다.
nvidia-docker 설치
위의 단계까지 끝내면 일반적인 도커 기능들을 이용하실 수 있습니다. 하지만 NVIDIA의 GPU를 이용하시면서 여러 환경의 CUDA Tookit을 이용하실 경우 nvidia-docker라는 확장 기능을 추가하시면 보다 편리하게 사용하실 수 있습니다.
nvidia-docker를 설치하고자 하실 경우 호스트 운영체제에 먼저 NVIDIA 드라이버가 설치되어 있어야 합니다. NVIDIA의 그래픽카드 또는 GPU를 사용하지 않는 경우 이 과정을 진행하고 도커 설치과정을 끝내실 수 있습니다.
NVIDIA 그래픽 카드 또는 GPU를 사용하시는데, 아직 드라이버가 설치 되지 않았을 경우 아래의 글을 참고하여 먼저 드라이버를 설치한 후에 다음 과정을 진행해 주시면 됩니다.
아래의 명령어를 사용하여 저장소를 추가해 주시기 바랍니다.
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ 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
Code language: PHP (php)
그리고 아래의 명령어를 사용하여 nvidia-docker를 설치해 주시고, 시스템을 재부팅 하여 도커 데몬이 재실행 되도록합니다.
$ sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker
Code language: JavaScript (javascript)
NVIDIA의 CUDA 도커 컨테이너 이미지 버전들은 아래의 페이지에 방문하시면 확인 하실 수 있습니다.
https://hub.docker.com/r/nvidia/cuda/tags/
원하시는 CUDA 및 cuDNN 버전의 컨테이너를 다운받으신 뒤에 아래와 같이 사용하실 수 있습니다.
아래의 명령어는 CUDA Toolkit 9.0 버전의 컨테이너 이미지를 다운 받고, nvidia-smi 명령어를 실행한 예제입니다.
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi