Ubuntu에 Docker를 설치하고 Ubuntu 컨테이너를 실행하는 방법 (단계별 가이드)

translation.

目次

1. Docker란 무엇이며 Ubuntu와의 관계

Docker는 애플리케이션 실행 환경을 “컨테이너”라는 단위로 패키징하는 가상화 기술로, 서로 다른 서버와 컴퓨터에서 일관되게 실행될 수 있게 해줍니다. 기존의 가상 머신과 달리 Docker는 호스트 OS 위에서 직접 컨테이너를 실행하므로 훨씬 가볍고 빠릅니다.

Ubuntu와 같은 Linux 기반 운영 체제는 Docker와 특히 잘 맞으며, 이 때문에 Docker는 기업은 물론 개인 개발자와 서버 관리자에게도 널리 사용됩니다. 이는 Ubuntu 자체가 오픈 소스이고, 서버 환경에서 널리 채택되며, 패키지 시스템으로 관리가 쉽고, 방대한 공식 문서가 지원되기 때문입니다.

Docker를 사용하면 “내 컴퓨터에서는 동작하지만 서버에서는 안 된다”는 흔한 문제를 없앨 수 있습니다. 개발용 PC든 프로덕션 서버든, Docker 컨테이너는 어디서든 정확히 동일한 환경을 재현할 수 있게 해줍니다. Ubuntu는 Docker에서 공식적으로 지원하므로 설치 가이드와 문제 해결 자료가 풍부합니다.

이 글에서는 Ubuntu에 Docker를 설치하고 Ubuntu 컨테이너를 시작하는 방법을 명확히 설명합니다. Docker가 처음이든 이미 사용해 본 경험이 있든, 이 가이드는 기본 지식을 다지는 데 도움이 될 것입니다.

2. 필요 환경 및 사전 준비

Ubuntu에서 Docker를 사용하기 전에 몇 가지 사전 조건과 확인 사항이 필요합니다. 이 섹션에서는 원활한 설치를 위해 미리 확인해야 할 필수 환경과 중요한 포인트를 정리합니다.

Ubuntu 버전

Docker는 Ubuntu 18.04 LTS 이상을 권장합니다. Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS와 같은 장기 지원(LTS) 버전이 특히 잘 지원됩니다. 오래된 버전은 의존성이나 패키지 문제에 직면할 수 있으므로 최신 LTS 버전을 사용하는 것이 강력히 권장됩니다.

시스템 요구 사항

Docker는 가볍지만, 여러 컨테이너를 실행하거나 개발·테스트 용도로 사용할 경우 충분한 시스템 자원이 필요합니다. 최소 사양은 다음과 같습니다.

  • 64비트 Ubuntu (32비트는 지원되지 않음)
  • CPU: 2코어 이상 권장
  • 메모리: 최소 2 GB (4 GB 이상 권장)
  • 여유 디스크 공간: 최소 10 GB

인터넷 연결

Docker 설치 및 이미지 다운로드를 위해 인터넷 연결이 필요합니다. 초기 설정 시 대용량 데이터를 다운로드할 수 있으므로 안정적인 연결을 권장합니다.

사용자 권한

Docker 설치 및 시스템 설정을 관리하려면 sudo(관리자) 권한이 필요합니다. 일반 사용자 권한만 있는 경우 임시 접근 권한을 요청하거나 관리자에게 도움을 받으세요.

기존 Docker 패키지 제거

이전에 docker 또는 docker.io와 같은 패키지를 수동으로 설치한 경우, 충돌을 방지하기 위해 해당 패키지를 제거하는 것이 좋습니다.

sudo apt-get remove docker docker-engine docker.io containerd runc

이렇게 하면 충돌을 일으킬 수 있는 레거시 패키지로 인한 잠재적인 문제가 방지됩니다.

요약

이 섹션에서 사전 조건을 확인한 후, 다음 장에서 설치 및 설정 단계로 진행하세요. 적절히 준비하면 Ubuntu에 Docker를 설치하는 과정이 매우 원활합니다.

3. Docker Engine 설치 및 설정

이 섹션에서는 Ubuntu에 Docker Engine을 설치하고 기본 설정을 수행하는 방법을 설명합니다. 공식 Docker 저장소를 사용하면 최신 안정 버전을 받을 수 있습니다.

공식 저장소 추가 및 사전 준비

먼저 Docker의 공식 저장소를 apt에 추가합니다. 모든 단계는 터미널에서 수행합니다.

  1. 필수 패키지 설치
    sudo apt-get update
    sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
  1. GPG 키 추가
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
  1. Docker 저장소 추가

… (이하 내용은 원문을 그대로 이어서 번역)

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

Docker Engine 설치

리포지토리를 추가한 후 Docker Engine을 설치합니다.

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

설치가 완료되면 버전을 확인하여 검증합니다:

docker --version

예를 들어 Docker version 25.0.3와 같은 출력이 보이면 설치가 성공한 것입니다.

Docker Desktop에 대하여 (선택 사항)

Ubuntu에서는 보통 Docker Engine만으로 충분합니다. 그래픽 인터페이스가 필요하다면 Linux용 Docker Desktop도 사용할 수 있지만, CLI 기반 워크플로우에서는 Docker Engine만으로도 충분합니다.

설치 문제 해결

“package not found”와 같은 오류가 발생하면 리포지토리 설정과 GPG 키 구성을 다시 확인하십시오. 오래된 Docker 패키지와의 충돌도 문제를 일으킬 수 있으니, 필요하면 제거 단계로 돌아가세요.

4. sudo 없이 Docker 사용

기본적으로 Docker 명령은 sudo 권한이 필요합니다. 모든 명령에 sudo를 요구하는 것은 불편하고 명령을 잘못 입력하면 위험할 수 있습니다. 권장 방법은 사용자 계정을 docker 그룹에 추가하여 sudo 없이 안전하게 Docker를 사용하는 것입니다.

사용자를 docker 그룹에 추가하기

  1. 현재 사용자를 docker 그룹에 추가합니다
    sudo usermod -aG docker $USER
    
  1. 변경 사항을 적용합니다

새 그룹 멤버십을 적용하려면 로그아웃 후 다시 로그인하십시오. 또는 아래와 같이 즉시 적용할 수 있습니다:

newgrp docker
  1. 확인합니다
    docker version
    

보안 주의사항

docker 그룹의 사용자는 높은 권한을 갖게 됩니다. 다중 사용자 환경에서는 docker 그룹 멤버십을 신중히 관리하십시오. 개인 또는 개발 용도라면 일반적으로 문제가 되지 않습니다.

5. Docker 데몬 시작 및 자동 시작 활성화

Docker는 Docker 데몬(dockerd)이라는 백그라운드 서비스로 실행됩니다. 설치 후 보통 자동으로 시작되지만, 이를 관리하는 방법을 이해하는 것이 중요합니다.

Docker 시작, 중지 및 재시작

sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
sudo systemctl status docker

부팅 시 자동 시작 활성화 또는 비활성화

sudo systemctl enable docker
sudo systemctl disable docker

로그 확인

journalctl -u docker

6. Ubuntu 컨테이너 시작

이 섹션에서는 Docker에서 Ubuntu 컨테이너를 실제로 시작하는 방법을 설명합니다.

Ubuntu 이미지 가져오기

docker pull ubuntu:22.04

Ubuntu 컨테이너 실행

docker run -it --name myubuntu ubuntu:22.04 /bin/bash

백그라운드에서 실행

docker run -d --name myubuntu ubuntu:22.04 tail -f /dev/null

컨테이너 중지 및 재시작

docker stop myubuntu
docker start myubuntu

컨테이너 상태 확인

docker ps
docker ps -a

7. 컨테이너 관리를 위한 필수 Docker 명령

이 섹션에서는 일상적인 작업에 자주 사용되는 Docker 명령을 요약합니다.

컨테이너 목록

docker ps
docker ps -a

시작, 중지, 재시작

docker start [container]
docker stop [container]
docker restart [container]

컨테이너 접근

docker exec -it [container] /bin/bash

컨테이너 및 이미지 삭제

docker rm [container]
docker rm -f [container]
docker images
docker rmi [image]

로그 및 디스크 사용량

docker logs [container]
docker system df

8. 문제 해결 및 자주 묻는 질문

이 섹션에서는 일반적인 Docker 문제와 해결 방법을 다룹니다.

Docker 데몬에 연결할 수 없음

Docker가 실행 중이며 사용자가 적절한 권한을 가지고 있는지 확인하십시오.

패키지 충돌

sudo apt-get remove docker docker-engine docker.io containerd runc

컨테이너 시작 실패

이미지 이름, 사용 가능한 메모리 및 디스크 공간을 확인하세요.

9. 요약 및 다음 단계

이 기사는 Ubuntu에 Docker를 설치하고 Ubuntu 컨테이너를 실행하는 방법, 기본 개념부터 실용적인 사용까지 다루었습니다.

다음 단계

  • Dockerfile로 사용자 지정 이미지 빌드
  • Docker Compose로 여러 컨테이너 관리
  • 볼륨 및 네트워크 사용
  • Kubernetes로 컨테이너 오케스트레이션 탐구

10. 자주 묻는 질문

이 섹션은 Ubuntu에서 Docker와 관련된 자주 묻는 질문을 답변합니다.

Docker는 Ubuntu Desktop과 Server 모두에서 사용할 수 있나요?

네. Ubuntu Server는 자원 사용량이 적어 프로덕션 환경에서 자주 선호됩니다.

Docker Desktop이 필요하나요?

아니요. Ubuntu에서는 Docker Engine만으로 충분합니다.

루트리스 모드란 무엇인가요?

루트리스 모드는 Docker를 루트 권한 없이 실행할 수 있게 하여 보안을 강화하지만 일부 제한이 있습니다.

데이터를 지속적으로 저장하려면 어떻게 하나요?

docker run -v /host/path:/container/path ubuntu:22.04

컨테이너를 자동 시작하려면 어떻게 하나요?

docker run --restart=unless-stopped -d ubuntu:22.04
年収訴求