Docker, container

heyme·2022년 4월 27일

docker

목록 보기
1/3

앞으로 docker를 사용하여 일을 하게되어 요즘은 docker에 대해 공부하고 있다. docker 외에도 환경설정, git 서버 등 접해보지 않은 여러가지 것들을 사용하고 있어서, 주요 내용들을 이곳에 정리하려고 한다.

docker는 다른 환경의 가상 서버를 만들어주는 플랫폼이다. 이때 가상 서버가 container가 된다. 이 개념을 이해하는데 시간이 많이 걸렸는데, 기본 바탕이 되는 image file을 가져와서 우리가 원하는대로 만든 환경이 container, 이러한 container를 실행하기 위한 것이 docker 라고 이해하면 편할 것 같다.

docker는 환경을 분리할 수 있다는 장점이 있어 많이 사용되고 있다. 원래의 용도는 micro service를 위해 하나의 큰 동작을 잘게 쪼개어 사용하기 위해 만들어졌지만 지금은 뭐 사용하기 나름이겠다. 우리가 잘 아는 virtual machine과 다른 점은 docker의 container를 실행한다고 해서 온전한 하나의 서버가 짠하고 나타나는 것이 아니라, 그 안에 명령을 입력하고 실행할 수 있는 환경을 제공하는 것이다. 또한 docker는 kernel을 공유하기 때문에 리눅스 바탕에서 윈도우를 불러올 수 없다. 물론 분리된 환경이어도 포트를 설정하여 통신은 가능하다.

docker가 설치되어 있다는 전제하에, docker를 사용하기 위해서는 container를 만들기 위한 image file이 있어야 한다. 아래의 docker hub로 가면 여러 오피셜 이미지를 확인할 수 있다. https://hub.docker.com/search?image_filter=official&q=

예를 들어 gpu를 이용하기 위해 nvidia에서 제공해주는 image file을 받으려면 pull을 하여 이미지 파일을 다운받아야 한다. 이때 이미지 파일은 현재 실행 경로가 아닌 docker 하위의 폴더에 들어간다.

docker images 로 확인해 보면, REPOSITORY는 nvidia/cuda, TAG는 10.2-cudnn7-devel-centos7 로 잘 들어가 있는 것을 확인할 수 있다. 이렇게 docker를 사용하지 않고 직접 local로 환경설정을 해주려면 nvidia driver, CUDA 버전정보, CUDNN 버전 등 여러가지를 직접 설정해줘야 하기 때문에 nvidia에서는 docker 째로 가져가라고 강력히 권고한다고 한다.

다음에는 이미지 파일을 이용하여 docker를 열고 container를 실행하는 실습과정을 정리해보겠다!

0개의 댓글