2024. 8. 26. 14:29ㆍArtificial Intelligence/모두를 위한 딥러닝 (PyTorch)
Docker란?
도커는 컨테이너 기반의 가상화 시스템이다. 가상화의 대표적인 예시로는 윈도우즈에서 가상 머신으로 리눅스를 실행하거나 macOS에서 Parallels를 이용해서 윈도우즈를 띄우는 것이 있다. 하나의 하드웨어에서 여러 개의 운영체제를 실행했을 때 발생하는 문제는 속도가 느려지는 것이다.
Ubuntu, CentOS, RedHat 운영체제는 모두 같은 리눅스 커널을 사용하는데, 이걸 하나로 통합해 볼까? 하는 아이디어에서 도커가 개발되었다. 여러 개의 운영체제를 설치하지 않고도, Host 운영체제 위에 도커만 설치하면 어느 컴퓨터에서든 똑같이 돌아가는 가상 환경을 여러 개 띄울 수 있다. 따라서 이 강의에서는 딥러닝 실습에 필요한 환경 설정이 모두 되어있는 도커 이미지를 사용한다. 설정들이 망가졌다면 컨테이너를 없애고, 다시 새 도커 이미지를 추가하면 된다.
Docker에 대한 기대
데이터사이언스 과목을 들을 때, 아나콘다와 스파이더를 설치하면서 경로 및 버전 충돌로 어려움을 겪은 적이 있다. 이전에 데이터 관련 온라인 학회를 하면서 설치했던 아나콘다와 각종 파이썬 라이브러리 버전들이 계속 충돌했고, 며칠 내내 구글링하다가 노트북을 싹 밀었던 적이 있다. 정말 이 방법만 하면 될 것 같은데 싶다가도, 무한 설치 로딩과 콘솔 창의 에러를 계속 보다가 지쳐서 최후의 방법을 써버렸다. 하지만, 각종 파일 백업, 수많은 소프트웨어 재설치, 포맷하는 수고로움이 있으니 항상 이렇게 할 수는 없다. 그런 의미에서 도커의 활용이 매우 기대된다.
Docker 설치
몇 일 후에 맥북으로 바꿀 예정이라서 상품 받으면 설치할까 싶었지만, 여러 운영체제에 익숙하면 좋으니까 원래 노트북에도 설치하기로 했다. 도커는 원래 리눅스 운영체제를 기준으로 만들었기 때문에, 윈도우즈와 macOS에서 별도의 가상머신을 활용하게 되면 성능이 조금 떨어지고, GPU를 사용할 수 없다.
Windows ver.
Docker Toolbox 또는 Docker desktop은 가상화 방식에 차이를 보인다. 강의에는 해당 내용의 설명이 없어서 간단히 찾아봤다. 전자는 리눅스 가상머신을 설치하고 도커를 설치하는 구조이고, 후자는 자체 가상화 기술로 리눅스 환경을 만든 후에 컨테이너를 생성한다고 한다. 나는 윈도우즈 11 Pro를 쓰고 있어서, 강의와 달리 Docker desktop을 사용하기로 했다.
※ WSL update failed 에러 해결
cmd 창을 관리자 권한으로 실행하고, wsl --update 커맨드를 실행하면 된다.
MacOS ver.
MacOS의 버전이 10.10 이상인지 먼저 확인한다. 맥에는 hypervisor 방식으로 설치되므로 간단하게 Docker desktop for mac을 설치하면 된다.
Hypervisor
하드웨어에서 시스템의 운영 체제와 리소스를 분리해 VM에 할당하여 가상 머신을 생성하고 구동하는 소프트웨어
(출처: RedHat 공식 문서)
설치 테스트용 커맨드
cmd 창을 열고, 아래 커맨드를 실행한다. Docker desktop에 hello-world 이미지를 사용하는 컨테이너가 생성되었다.
docker run hello-world
*참고 자료
모두를 위한 딥러닝 시즌2 - PyTorch: Docker Instruction