Docker는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다. 도커 웹 페이지의 기능을 인용하면 다음과 같다: 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다.
Container 를 만드는 데 사용되는 읽기 전용(Read-only) 템플릿
이미지의 목적에 맞는 파일이 들어있는 파일 시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간이 생성됨
Docker 의 이미지를 이용해서 docker run 을 하면 Docker 는 도커가 관리하는 파일 시스템 영역에 이미지를 복사. 복사 후 docker는 이미지의 최상단에 컨테이너 레이어(Container layer) 라고 불리는 하나의 얇은 레이어를 추가하여 컨테이너를 생성. 그리고 사용자에게 유니온 파일 시스템을 이용하여 마치 이러한 여러개의 파일 시스템(Image layer)으로 구성되어 있는 이미지 스택 구조가 하나의 파일 시스템 처럼 보이도록 하게 함
$ sudo apt update
#Repository 설정
#apt가 HTTPS Repository를 사용할 수 있도록 해주는 패키지 설치
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y
#Docker의 공식 GPG 키 추가
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#Docker apt Repository 추가
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
#Docker CE 설치
$ sudo apt-get update && sudo apt-get install -y \
containerd.io=1.2.13-1 \
docker-ce=5:19.03.8~3-0~ubuntu-$(lsb_release -cs) \
docker-ce-cli=5:19.03.8~3-0~ubuntu-$(lsb_release -cs)
$ sudo apt update
#도커 리포지토리에서 사용 가능한 모든 버전 나열
$ sudo apt list -a docker-ce
#패키지 이름 뒤에 =<VERSION>을 추가하여 특정 버전 설치
$ sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
#최신버전 설치시
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
#도커 설치 확인
$ docker version
$ sudo systemctl enable docker
$ sudo systemctl status docker
$ docker run hello-world
#도커 패키지 업데이트되지 않도록 보류
$ sudo apt-mark hold docker-ce
도커를 제거하기 전에 모든 용기, 이미지, 볼륨 및 네트워크를 제거하는 것이 좋다.
다음 명령을 실행하여 실행 중인 모든 컨테이너를 중지하고 모든 도커 개체를 제거한다.
$ docker container stop $(docker container ls -aq)
$ docker system prune -a --volumes
$ sudo apt purge docker-ce
$ sudo apt autoremove