서론
Ubuntu 20.04 LTS를 기준으로 Docker를 설치하는 방법과 Docker 명령어 들에 대해서 설명한다.
GPU를 사용하려면 일반 Docker가 아닌 nvidia-docker를 설치해야하니 참고하자.
목차
Docker Installation
Snap package 설치
$ sudo apt install snap
Docker install
$ sudo apt-get update
$ sudo apt install docker.io
$ sudo snap install docker
설치 확인
$ docker --version
Test해보기
$ sudo docker run hello-world
$ sudo docker images
Docker Instruction
설치된 이미지 확인
$ docker images
이미지 삭제
$ sudo docker rmi {image_id}
동작중인 컨테이너 확인
$ sudo docker ps
모든 컨테이너 확인
$ docker ps -a
컨테이너 삭제
$ docker rm {ContainerID}
컨테이너 복수개 삭제
$ docker rm {ContainerID},{ContainerID} ...
이미지 실행
$ sudo docker run -d -ti --gpus device=1 --ipc=host -v $HOME/temp:/workdir/onnx-mlir/temp --name MLIR 258bd719730b /bin/bash
-v : 로컬호스트와 가상 컨테이너의 볼륨의 경로를 잡아주는 옵션이다.
$ sudo docker attach MLIR
컨테이너 다시 시작
실행중인 컨테이너에 들어가기
$ docker start {ContainerID or Name}
$ docker attach {ContainerID or Name}
Docker image → .tar
sudo docker save -o file_name.tar image_name
Docker .tar → Docker image
sudo docker load -i file_name.tar
Nvidia-Docker 설치
nvidia-docker는 리눅스에서만 지원되며 window는 docker container에서 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
sudo apt-get install -y nvidia-docker2 &&
sudo systemctl restart docker
Docker sudo 없애기
sudo usermod -aG docker [현재 사용자 이름]
아래 처럼 해주면 된다.

그리고 나서 우분투를 재기동 해주면 sudo 없이 사용할 수 있다.
sudo systemctl reboot
[reference]
https://mlops-for-all.github.io/docs/setup-kubernetes/setup-nvidia-gpu/
Memo.
아래 명령어는 3d032c518622의 고유 ID를 갖는 이미지로 neowine_c1이라는 docker 컨테이너를 만들고
docker run: docker의 이미지를 기반으로 container를 생성하라
--gpus '"device=0,1,2,3"': GPU 0, 1, 2, 3번을 컨테이너에 할당하라
-ti or -it: 컨테이너에서 터미널을 사용하여 명령어를 전달할 수 있게끔한다.
-ipc=host: 컨테이너와 호스트 간의 프로세스 통신(IPC)를 공유하기 위한 옵션
-v /home/rtx4090/workspace:/workspace: host의 디렉토리인 /home/rtx4090/workspace의 경로를 컨테이너 내의 /workspace 디렉토리와 연결하라
-name: 도커 컨테이너의 이름을 지정하는 옵션
3d032c518622: 도커 컨테이너를 만들기 위해 사용되는 도커 이미지 식별자
/bin/bash: 쉘이 실행되어 컨테이너와 상호작용 할 수 있다.
sudo docker run -d --gpus ‘"device=0,1,2,3"’ -ti --ipc=host -v /home/rtx4090/workspace:/workspace --name neowine_c1 3d032c518622 /bin/bash
Comment