2020년 6월 21일 일요일

[LINUX MINT] 리눅스 민트에서 docker(도커) 설치하기

도커는 리눅스 환경을 아주 유동적으로 사용 가능한 유용한 도구이지만 이상하게도 리눅스 민트에서는 표준적으로 제공해 주는 설치 스크립이 제대로 작동하지 않는다. 이렇게 된 데에는 리눅스 민트가 우분투를 변경 사용하지만 문제는 자기 시스템명을 민트 코드로 반납해서 도커 서버에는 자기에 맞는 바이너리가 없는 것으로 나오기 때문이다. 그래서 이 점을 설치 명령어에 반영해 주지 않으면(즉 우분투 코드로 바꾸어주지 않으면) 설치가 되지 않는 것이다.

참조 URL : 
https://linuxhint.com/install_docker_linux_mint
https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html
https://github.com/NVIDIA/nvidia-docker

1. 예전에 설치된 도커 패키지가(만약에 있다면) 삭제해 준다

    sudo apt remove docker docker-engine docker.io containerd runc

2. 업데이트와 필요 패키지 설치
    
    sudo apt update
    sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

3. 키를 추가하고 이를 확인한 뒤, 저장소를 추가다(여기가 중요)

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo apt-key fingerprint 0EBFCD88
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

4. 다시 업데이트
    
    sudo apt update

5. 드디어 도커를 설치한다

    sudo apt install docker-ce docker-ce-cli containerd.io

이렇게 복잡하게 설치 했지만 제일 간단한 방법은 내 리눅스 배포판에 맞는 설치 패키지를 다운 받아 설치하는게 제일 쉬울 것이다.(응?)
(19.3 버전 기준으로 https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/ 에서 다운 받으면 된다)

민트 대비 우분투 비교표 : https://linuxmint.com/download_all.php
도커 deb설치 파일 : https://download.docker.com/linux/ubuntu/dists/

그 뒤 도커 유저를 추가한다.

    sudo usermod -aG docker $USER
    sudo usermod -aG docker (사용자)

위의 명령어는 지금 사용자를 그 아래는 원하는 사용자를 추가한다.

6. 그리고 마지막으로 nvidia docker를 설치한다.(이걸 해줘야 nvidia GPU랑 도커 컨테이너 내부의 

    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    sudo apt update && sudo apt install -y nvidia-container-toolkit

사용법은 도커 구동시 --gpus 옵션을 붙여 주면 된다.(위의 nvidia URL을 참조할 것)

추가 사항 : 하다보니 usermod 를 추가해 주었는데도 작동 않는 경우가 있다.(내 경우는 sudo 권항을 가진 사용자 자신)
다음 링크 처럼 해보니 된다.(https://www.digitalocean.com/community/questions/how-to-fix-docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket)

    sudo chmod 666 /var/run/docker.sock

조금 위험한 방법이지만 어째든 움직인다.

댓글 없음:

댓글 쓰기