도커는 컨테이너 기술중 하나이다.
컨테이너는 프로젝트에 필요한 버전의 도구들을 모아둘 수 있으며 각각의 컨테이너들은 서로 격리될 수 있다. 또한 생성된 컨테이너들은 다양한 하드웨어에 베포할 수 있다. 즉, 프로젝트에 필요한 모든 환경을 독립된 공간에서 구현 가능하게 하며 이식성이 뛰어난 기술이 도커이다.
사용자 OS 위에 가상의 OS를 만들어 그 안에서 필요한 라이브러리와 도구들을 구성하고 프로젝트를 진행한다. 컴퓨터 안에 새로운 작은 컴퓨터를 구성하는 것과 같다.
도커는 사용자 운영체제 위에 Docker Engine을 사용하여 또 다른 OS를 emulationg 할 수 있다.
생성된 OS 위에 다수의 컨테이너를 생성해 각 컨테이너마다 서로 다른 프로젝트들을 할당할 수 있다.
VM에 운영체제를 설치하는 것보다 훨씬 가볍고 사용자 OS의 리소스를 적게 차지한다.
공유와 리빌딩, 배포가 용이하다.
$ sudo apt update
$ sudo apt-get install -y ca-certificates \
curl \
software-properties-common \
apt-transport-https \
gnupg \
lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io