안녕하세요. 미뇽입니다.
오늘은 바로 그 경험을 바탕으로, 우분투 환경에 도커 엔진(Docker Engine)을 설치하고, 필요시 깔끔하게 제거하는 전체 과정을 단계별로 상세하게 안내해 드리려고 합니다.
우분투에 도커 엔진 설치 하기
본격적으로 설치를 시작하기 전에, 몇 가지 준비물과 확인 사항이 있습니다.
설치 전 Docker Engine 요구 사항 확인하기
먼저 우리 시스템이 도커 엔진을 맞이할 준비가 되었는지 확인해야 합니다.
운영체제
64비트 버전의 Ubuntu가 필요합니다. 공식적으로 지원되는 버전은 다음과 같습니다. (이 글은 2025년 5월 기준으로 작성되었으니, 항상 최신 정보는 Docker 공식 문서를 한 번 더 확인하시는 것을 추천합니다!)
- Ubuntu Oracular 24.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Focal 20.04 (LTS)
아키텍처
x86_64 (또는 amd64), armhf, arm64, s390x, ppc64le 아키텍처를 지원합니다. 대부분의 데스크톱이나 서버 환경은 x86_64/amd64에 해당될 거예요.
이전 버전의 Docker 제거 (선택 사항)
혹시 시스템에 구 버전의 도커 관련 패키지(docker
, docker-engine
, docker.io
등)가 설치되어 있다면, 충돌을 방지하고 깨끗한 상태에서 새로 설치하기 위해 먼저 제거해 주는 것이 좋습니다.
sudo apt update
sudo apt remove docker docker-engine docker.io containerd runc
위 명령은 오래된 도커 패키지 및 관련 런타임(containerd, runc)을 제거합니다. 만약 해당 패키지들이 시스템에 없다면 “패키지를 찾을 수 없습니다”와 같은 메시지가 나올 텐데, 이는 정상이니 걱정하지 않으셔도 됩니다. 오히려 깔끔한 상태라는 좋은 신호죠!
Docker의 공식 apt
리포지토리 설정하기
이제 도커 공식 리포지토리를 우리 시스템의 apt
소스 목록에 추가할 차례입니다. 이렇게 해야 apt
명령어를 통해 항상 최신 버전의 안정적인 도커를 설치하고 업데이트할 수 있습니다.
먼저, apt
가 HTTPS를 통해 리포지토리를 사용할 수 있도록 필요한 패키지들을 설치하고, Docker의 공식 GPG 키를 추가합니다. 이 GPG 키는 우리가 내려받는 도커 패키지가 중간에 변조되지 않은, 신뢰할 수 있는 공식 패키지임을 확인하는 데 사용됩니다.
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.key
sudo chmod a+r /etc/apt/keyrings/docker.key
ca-certificates
: HTTPS 통신에 필요한 CA 인증서를 제공합니다.curl
: URL을 통해 데이터를 전송하는 도구로, 여기서는 GPG 키를 다운로드하는 데 사용됩니다.sudo install ...
및sudo curl ...
: Docker의 공식 GPG 키를 다운로드하여 지정된 경로(/etc/apt/keyrings/docker.key
)에 저장하고,apt
가 읽을 수 있도록 권한을 설정합니다.
다음으로, Docker 리포지토리를 apt
소스 목록에 추가합니다.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.key] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
이 복잡해 보이는 명령어는 현재 시스템의 아키텍처(예: amd64)와 우분투 버전의 코드명(예: jammy, focal)을 자동으로 감지하여 Docker 리포지토리 설정을 생성하고, 이를 /etc/apt/sources.list.d/docker.list
파일에 저장해줍니다.
마지막으로, 새로 추가된 Docker 리포지토리 정보를 시스템이 인식하도록 패키지 목록을 다시 한번 업데이트합니다.
sudo apt update
이 과정을 거치면, 이제 우리 시스템은 도커 공식 리포지토리에서 도커 패키지를 찾아 설치할 준비를 마치게 됩니다!
Docker Engine 설치하기
드디어 Docker Engine을 설치할 시간입니다! 다음 명령어를 실행하여 최신 버전의 Docker Engine 관련 패키지들을 설치합니다.
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
설치되는 주요 패키지들은 다음과 같습니다:
docker-ce
: Docker Community Edition, 즉 Docker 엔진의 핵심입니다.docker-ce-cli
: Docker 명령줄 인터페이스(CLI)로, 우리가 터미널에서docker
명령을 사용할 수 있게 해줍니다.containerd.io
: 컨테이너의 실행을 실제로 담당하는 업계 표준 컨테이너 런타임입니다.docker-compose-plugin
: 여러 컨테이너로 구성된 애플리케이션을 쉽게 정의하고 실행할 수 있게 해주는 Docker Compose의 최신 플러그인 버전입니다. (예전의docker-compose
대신docker compose
명령으로 사용)
설치가 성공적으로 완료되면, 여러분의 우분투 시스템에서 도커를 사용할 모든 준비가 끝난 것입니다!
설치 확인하기: hello-world
실행!
도커가 정말로 잘 설치되었는지 확인하는 가장 확실한 방법은 간단한 테스트 이미지를 실행해보는 것입니다.
sudo docker run hello-world
이 명령은 hello-world
라는 이름의 아주 작은 테스트용 이미지를 Docker Hub(공식 이미지 저장소)에서 자동으로 내려받아 컨테이너로 실행합니다. 터미널에 다음과 유사한 메시지가 출력된다면 성공입니다!
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
“Hello from Docker!” 메시지를 보셨다면, 축하드립니다! 도커 엔진이 성공적으로 설치되었고, 정상적으로 작동하고 있다는 의미입니다.
sudo
없이 Docker 명령어 사용하기 (선택 사항)
매번 docker
명령어를 사용할 때마다 앞에 sudo
를 붙이는 것이 조금 번거로울 수 있습니다. 현재 사용자를 docker
그룹에 추가하면 sudo
없이 Docker 명령어를 사용할 수 있게 됩니다.
sudo usermod -aG docker $USER
Docker 설치 시 docker
라는 Unix 그룹이 자동으로 생성됩니다. 위 명령어는 현재 로그인된 사용자($USER
)를 docker
그룹에 추가하는 명령어입니다. 이 그룹에 속한 사용자는 Docker 데몬에 접근할 수 있는 권한을 갖게 됩니다.
⚠️ 보안 참고 사항:
docker 그룹에 사용자를 추가하는 것은 해당 사용자에게 시스템의 루트(root) 사용자와 동등한 권한을 부여하는 것과 유사한 결과를 초래할 수 있습니다. Docker 데몬은 루트 권한으로 실행되기 때문인데요, 이는 시스템 보안에 심각한 영향을 미칠 수 있습니다. 따라서 이 방법은 개인 개발 환경이나 신뢰할 수 있는 사용자에게만 제한적으로 사용하는 것이 좋으며, 운영 서버 등 보안이 중요한 환경에서는 신중하게 고려해야 합니다.
그룹 변경사항을 시스템에 적용하려면, 현재 터미널 세션에서는 바로 적용되지 않을 수 있습니다. 가장 확실한 방법은 로그아웃 후 다시 로그인하는 것입니다. 또는 다음 명령어를 터미널에 입력하여 새 그룹 설정을 현재 셸에 임시로 적용할 수도 있습니다 (새 셸이 열릴 수 있습니다).
newgrp docker
하지만 저는 개인적으로 시스템 재부팅이나 로그아웃 후 재로그인을 통해 확실하게 적용하는 것을 선호합니다.
Docker Engine 깔끔하게 제거하기 🧹
도커를 더 이상 사용하지 않거나, 문제가 발생하여 완전히 새로 설치하고 싶을 때가 있습니다. 그럴 때는 다음 단계에 따라 깨끗하게 제거할 수 있습니다.
Docker 관련 패키지 제거하기
먼저 설치했던 Docker Engine, CLI, containerd 등의 패키지를 제거합니다. purge
옵션을 사용하면 패키지뿐만 아니라 관련된 설정 파일까지 함께 삭제하여 더욱 깔끔하게 제거할 수 있습니다.
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo apt autoremove
docker-buildx-plugin
이나docker-ce-rootless-extras
등은 설치 시점에 따라 함께 설치되었을 수 있는 관련 패키지들입니다.purge
목록에 포함하여 함께 제거해 줍니다.sudo apt autoremove
는 위 패키지들이 의존성으로 설치했지만 더 이상 사용되지 않는 다른 패키지들을 자동으로 정리해줍니다.
Docker 데이터 완전히 삭제하기 (이미지, 컨테이너, 볼륨 등)
위의 패키지 제거 명령어는 사용자가 생성한 도커 이미지, 컨테이너, 볼륨, 네트워크 설정 등은 삭제하지 않습니다. 이러한 데이터까지 완전히 삭제하여 도커 설치 이전 상태로 되돌리고 싶다면, 다음 디렉토리들을 직접 삭제해야 합니다.
⚠️ 아래 명령어는 해당 디렉토리 내의 모든 Docker 데이터를 영구적으로 삭제합니다. 중요한 애플리케이션 데이터나 볼륨이 있다면 반드시 백업한 후에 실행하세요! 한번 삭제하면 되돌릴 수 없습니다!
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
/var/lib/docker
: 도커 이미지, 컨테이너, 볼륨 등이 기본적으로 저장되는 핵심 디렉토리입니다./var/lib/containerd
: containerd 런타임 관련 데이터가 저장되는 디렉토리입니다.
APT 리포지토리 및 GPG 키 제거하기
마지막으로, 도커 설치를 위해 추가했던 apt
리포지토리 설정 파일과 GPG 키 파일도 삭제하여 시스템을 원래 상태로 정리합니다.
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.key
이제 apt update
를 다시 실행해보면 더 이상 Docker 리포지토리를 참조하지 않는 것을 확인할 수 있습니다.
위 과정을 모두 마치면, 여러분의 우분투 시스템에서 도커 엔진과 관련된 모든 내용이 깔끔하게 제거됩니다.
마무리
오늘은 Ubuntu 환경에서 Docker Engine을 설치하고, 필요할 때 깨끗하게 제거하는 전체 과정을 단계별로 자세히 살펴보았습니다. 처음에는 조금 복잡해 보일 수 있지만, 각 단계의 의미를 이해하고 차분히 따라 하시면 누구나 성공적으로 Docker 환경을 구축하거나 정리하실 수 있을 거예요. 저도 이 과정을 여러 번 반복하면서 Docker와 한층 더 가까워진 느낌을 받았답니다.
오늘도 긴 글 읽어주셔서 감사합니다. 🙂