目次
- 1 1. Docker란 무엇인가? Ubuntu와의 관계
- 2 2. 필요 환경·전제 조건
- 3 3. Docker Engine 설치 및 설정
- 4 4. docker 명령을 sudo 없이 사용할 수 있게 하기
- 5 5. Docker 데몬 시작·자동 시작 설정
- 6 6. Ubuntu 컨테이너 시작 절차
- 7 3. 백그라운드에서 시작
- 8 7. 컨테이너 운영의 기본 명령어 정리
- 9 8. 트러블슈팅/자주 묻는 질문
- 10 9. 요약 및 다음 단계
- 11 10. FAQ[자주 묻는 질문]
- 11.1 Q1. Docker는 Ubuntu Desktop과 Ubuntu Server 중 어느 쪽에서도 사용할 수 있나요?
- 11.2 Q2. Ubuntu에 Docker Desktop이 필요합니까?
- 11.3 Q3. rootless(루트리스) 모드란 무엇인가요?
- 11.4 Q4. 컨테이너에 영구적인 스토리지(데이터 저장 영역)를 부여하려면?
- 11.5 Q5. 컨테이너와 Docker 데몬의 자동 시작 설정은 어떻게 하나요?
- 11.6 Q6. 다른 OS용 Docker 이미지도 Ubuntu에서 실행할 수 있나요?
- 11.7 Q7. 이미지와 컨테이너가 너무 많이 늘어났을 때 정리 방법은?
- 11.8 Q8. 문제 발생 시 지원 및 정보원은?
- 11.9 Q9. Docker Compose 등 다중 컨테이너 관리 도구를 배우는 방법은?
- 11.10 Q10. 최신 Ubuntu 버전(예: 24.04)에서도 사용할 수 있나요?
1. Docker란 무엇인가? Ubuntu와의 관계
Docker는 애플리케이션 실행 환경을 “컨테이너”라고 부르는 단위로 패키징하여, 어떤 서버나 PC에서도 동일하게 동작시킬 수 있는 가상화 기술 중 하나입니다. 기존의 머신과 달리, 호스트 OS 위에 직접 컨테이너를 실행하기 때문에 보다 가볍고 빠른 환경을 구축할 수 있습니다. 특히 Ubuntu와 같은 Linux 계열 OS는 Docker와의 친화성이 매우 높아 기업·개인 여부와 관계없이 많은 개발자와 서버 관리자가 이용하고 있습니다. 그 이유는 Ubuntu 자체가 오픈소스이며 서버 용도로 널리 보급되어 있고, 패키지 관리가 쉬우며 공식 지원도 충실한 점에 있습니다. Docker를 사용하면 예를 들어 “다른 환경에서 동작하지 않는다”는 고민에서 해방됩니다. 개발용 PC든, 실제 서버든 Docker 컨테이너를 사용하면 “어디서든 동일한 환경”을 쉽게 재현할 수 있습니다. 또한 Ubuntu는 Docker의 공식 지원 대상이기도 하여 도입 절차와 정보도 풍부합니다. 이 글에서는 “Ubuntu에 Docker를 설치하고 실제로 Ubuntu 컨테이너를 실행하는” 절차에 대해 이해하기 쉽게 설명합니다. 처음 Docker를 사용하는 사람도, 이미 사용해 본 사람도, 다시 한 번 기본을 확인하고 싶은 경우에도 도움이 되는 내용을 목표로 합니다.2. 필요 환경·전제 조건
Docker를 Ubuntu에서 사용하려면 몇 가지 전제 조건과 준비가 필요합니다. 원활한 도입·시작을 위해 여기에서 필요한 환경과 사전 확인 포인트를 정리합니다.Ubuntu 버전에 대하여
Docker는 기본적으로 Ubuntu 18.04 LTS 이후 버전에서 사용을 권장합니다. 특히 지원이 풍부한 버전은 “Ubuntu 20.04 LTS”, “Ubuntu 22.04 LTS”, “Ubuntu 24.04 LTS” 등 장기 지원(LTS) 버전입니다. 오래된 버전의 경우 Docker 설치에 필요한 패키지와 의존 관계에서 문제가 발생할 수 있으므로 가능한 LTS 최신 버전을 사용하세요.시스템 요구 사항
Docker 자체는 경량 컨테이너 기술이지만, 여러 컨테이너를 실행하거나 개발·검증 용도로 사용할 경우 어느 정도의 리소스가 필요합니다. 최소한 다음 조건을 충족하는 것을 권장합니다.- 64bit 버전 Ubuntu가 설치되어 있어야 함(32bit 미지원)
- CPU: 2코어 이상 권장
- 메모리: 2GB 이상(4GB 이상이면 여유 있음)
- 여유 디스크 용량: 최소 10GB 이상
인터넷 연결
Docker 설치 및 이미지 다운로드에는 인터넷 연결이 필수입니다. 특히 처음에는 대량의 데이터를 다운로드할 수 있으므로 안정적인 회선을 준비하세요.사용자 권한에 대하여
Docker 설치 및 시스템 관리에는 “sudo” 권한(관리자 권한)이 필요합니다. 일반 사용자 권한만 있는 경우 사전에 관리자에게 요청하거나 권한을 일시적으로 부여하세요.오래된 Docker 패키지 삭제
이전에 “docker”나 “docker.io”와 같은 패키지를 수동으로 설치한 적이 있다면, 충돌이나 문제를 피하기 위해 오래된 패키지를 제거하는 것을 권장합니다.sudo apt-get remove docker docker-engine docker.io containerd runc
이를 통해 오래된 패키지가 혼재하여 발생하는 문제를 사전에 방지할 수 있습니다.정리
이 장의 내용을 사전에 확인하고 필요한 환경이 갖춰졌는지 확인한 후, 다음 장 이후의 설치·설정 작업을 진행하세요. 준비가 갖춰져 있다면 Docker 도입은 매우 원활하게 진행됩니다.3. Docker Engine 설치 및 설정
여기서는 Ubuntu에 Docker Engine을 설치하고 기본적인 설정을 수행하는 절차를 설명합니다. 공식 리포지토리를 이용하면 최신이면서 안정적인 Docker를 도입할 수 있습니다.공식 리포지토리 추가 및 사전 준비
먼저 Docker 공식 리포지토리를 apt에 추가합니다. 작업은 모두 터미널에서 수행합니다. 아래 절차대로 진행하세요.- 필요한 패키지 설치
sudo apt-get update
sudo apt-get install
ca-certificates
curl
gnupg
lsb-release
- 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
- 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 버전이 표시되는지 확인해 보세요.docker --version
예를 들어 “Docker version 25.0.3, build 1234567” 등으로 표시되면 설치 성공입니다.Docker Desktop에 대하여 (보충)
Ubuntu에서는 주로 “Docker Engine”을 사용하지만, 최근에는 “Docker Desktop for Linux”도 공식에서 제공됩니다. 그래픽 관리 화면이 필요하면 Docker Desktop도 선택지가 됩니다. 다만, CLI(명령줄) 중심이라면 Docker Engine만으로 충분합니다.문제가 발생했을 경우
“패키지를 찾을 수 없습니다”와 같은 오류가 발생하면 리포지토리 설정이나 GPG 키 등록에 실수가 없는지 검토하세요. 또한 오래된 Docker 패키지가 설치되어 있으면 충돌할 수 있으니, 2장의 제거 절차를 다시 확인해 보세요.4. docker 명령을 sudo 없이 사용할 수 있게 하기
Docker는 설치 직후, 시스템 관리자 권한(sudo)으로만 사용할 수 있습니다. 매번sudo
를 붙여 명령을 실행하는 것은 번거롭고, 명령을 잘못 입력했을 때 의도치 않은 시스템 변경 위험도 발생합니다。
그때 권장되는 방법은 “docker 그룹”에 자신의 사용자 계정을 추가하는 방법입니다. 이를 통해 sudo 없이 안전하고 편리하게 Docker를 조작할 수 있습니다.docker 그룹에 사용자 추가 절차
- 사용자를 docker 그룹에 추가하는
다음 명령으로 현재 로그인 중인 사용자를 docker 그룹에 추가합니다。
(
$USER
는 자동으로 현재 사용자 이름으로 대체됩니다)
sudo usermod -aG docker $USER
- 설정을 반영시키는 그룹 추가 설정을 유효하게 하려면 다시 로그인해야 합니다。 가장 간단한 방법은 ‘한 번 로그아웃하고 다시 로그인’하는 것입니다。
newgrp docker
- 확인 sudo 없이 Docker 명령을 실행할 수 있는지 확인합니다。 예를 들어, 다음과 같이 버전이 표시되면 성공입니다。
docker version
보충: 보안 측면에 대하여
docker 그룹에 추가하면 sudo가 필요 없게 되지만, 그만큼 사용자에게 강한 권한이 부여됩니다. 멀티 사용자 환경에서는 docker 그룹 관리에 주의하십시오。 개인 용도나 개발 환경에서는 큰 문제가 되지 않지만, 사내 서버 등에서는 운영 정책을 따르는 것이 안전합니다。 이 절차를 마치면 이후의 Docker 작업이 크게 편해집니다.5. Docker 데몬 시작·자동 시작 설정
Docker는 “데몬”이라고 불리는 상주 프로세스(dockerd
)로 동작합니다。
설치 직후 Docker 데몬은 자동으로 시작되도록 설정되어 있지만, 수동으로 시작·중지를 하거나 재시작 시 자동 시작 여부를 변경하고 싶을 수도 있습니다. 여기서는 Ubuntu에서 Docker 데몬의 기본적인 시작·관리 방법을 설명합니다.Docker 데몬의 시작·중지·재시작
Docker의 시작과 중지는systemctl
명령으로 간단히 조작할 수 있습니다。- 시작
sudo systemctl start docker
- 중지
sudo systemctl stop docker
- 재시작
sudo systemctl restart docker
- 상태 확인
sudo systemctl status docker
이 명령으로 현재의 시작 상태와 오류 정보를 확인할 수 있습니다。자동 시작 설정(부팅 시 활성화/비활성화)
Ubuntu에서는 서버를 재시작했을 때 Docker가 자동으로 올라오도록 설정할 수 있습니다。 보통 설치 시 자동 시작이 활성화되어 있지만, 설정을 확인·변경하는 방법도 기억해 두세요。- 자동 시작을 활성화
sudo systemctl enable docker
- 자동 시작을 비활성화
sudo systemctl disable docker
개발이나 테스트 환경 등에서 수동 시작만 원할 경우에는, 이것을 사용합니다。보충:service
명령으로도 조작 가능
오래된 Ubuntu이거나 익숙한 사람은 service docker start
와 같은 명령으로도 조작할 수 있습니다. 다만, 최근에는 systemctl
사용이 권장됩니다。오류 시 체크 포인트
- Docker 데몬이 시작되지 않을 경우
sudo systemctl status docker
로 오류 메시지를 확인합니다。 - 의존 패키지가 부족하거나 커널 설정이 맞지 않을 경우 오류가 발생할 수 있습니다。
- 로그는
journalctl -u docker
명령으로도 확인할 수 있습니다。
6. Ubuntu 컨테이너 시작 절차
여기부터는 실제로 Ubuntu에서 “Ubuntu 컨테이너”를 시작하는 절차를 설명합니다。 Docker만 설치했다고 해서 아직 컨테이너가 실행되고 있는 것은 아닙니다. 자신이 원하는 OS나 애플리케이션의 “컨테이너 이미지”를 입수하고 이를 실행하는 것이 일반적인 사용 방법입니다. 여기서는 가장 간단한 예로 Ubuntu 공식 이미지를 사용합니다.1. Ubuntu 이미지 가져오기(pull)
먼저 Docker Hub(공식 이미지 배포 장소)에서 Ubuntu 이미지를 다운로드합니다。 “22.04”와 같은 버전 지정도 가능하지만, 특별히 지정하지 않으면 최신 버전(latest)이 사용됩니다。docker pull ubuntu:22.04
또는docker pull ubuntu
두 경우 모두 사용할 수 있지만, 명시적으로 버전을 지정하는 것이 권장됩니다。2. Ubuntu 컨테이너 새로 시작(run)
받은 이미지를 기반으로 Ubuntu 컨테이너를 시작합니다。 가장 기본적인 것은 다음 명령어입니다。docker run -it --name myubuntu ubuntu:22.04 /bin/bash
-it
:대화형 모드(쉘 조작용)--name myubuntu
:컨테이너에 원하는 이름을 지정(생략 가능)ubuntu:22.04
:사용할 이미지/bin/bash
:시작 시 실행할 명령어(bash 쉘)
3. 백그라운드에서 시작
서버 용도나 “계속 실행하고 싶을 때”는 백그라운드 실행(-d 옵션)도 편리합니다。docker run -d --name myubuntu ubuntu:22.04 tail -f /dev/null
이 예에서는 컨테이너가 아무것도 하지 않고 “항상 실행 상태”가 됩니다。
4. 컨테이너 종료 및 재시작
- 컨테이너를 종료할 경우
docker stop myubuntu
- 다시 시작할 경우
docker start myubuntu
5. 상태 확인
- 실행 중인 컨테이너 목록
docker ps
- 중지된 것까지 포함해 모두 표시하려면
docker ps -a
정리
이 장에서는 “Ubuntu 이미지 가져오기”→“컨테이너 시작”→“기본적인 관리”까지 일련의 흐름을 설명했습니다. 실제로 직접 시도해 보면 Docker의 편리함을 체감할 수 있을 것입니다。7. 컨테이너 운영의 기본 명령어 정리
Docker의 매력은 “쉽게 컨테이너를 만들고·멈추고·파괴할 수 있다”는 유연한 운영성에 있습니다。 이 장에서는 Ubuntu 컨테이너의 관리와 운영에서 자주 사용하는 기본 명령어를 정리합니다。 모두 실무에서 많이 활용되므로, 반복해서 조작하면서 익혀두세요.컨테이너 목록 표시
- 실행 중인 컨테이너 목록
docker ps
- 중지된 것까지 포함한 모든 컨테이너 목록
docker ps -a
컨테이너 시작·정지·재시작
- 컨테이너 시작
docker start [컨테이너 이름 or ID]
- 컨테이너 정지
docker stop [컨테이너 이름 or ID]
- 컨테이너 재시작
docker restart [컨테이너 이름 or ID]
컨테이너에 연결·조작
- 실행 중인 컨테이너에 명령 실행(exec)
docker exec -it [컨테이너 이름 or ID] /bin/bash
컨테이너 삭제
- 컨테이너 삭제
docker rm [컨테이너 이름 or ID]
- 강제로 삭제(실행 중도 가능)
docker rm -f [컨테이너 이름 or ID]
이미지 삭제
- 미사용 이미지 확인
- 이미지 삭제
docker rmi [이미지 이름 or ID]
그 외 자주 쓰는 편리한 명령어
- 로그 확인
docker logs [컨테이너 이름 or ID]
- 디스크 사용량 확인
docker system df
포인트 정리
docker ps
,docker start
,docker stop
,docker exec
등 기본 명령어를 숙지하면 일상 운영·문제 대응이 원활해집니다。- 불필요한 컨테이너와 이미지는 정기적으로 삭제하고, 디스크 용량을 관리하는 것도 중요합니다。
8. 트러블슈팅/자주 묻는 질문
Docker와 Ubuntu 컨테이너를 운영하다 보면 예상치 못한 트러블이나 오류를 마주칠 수 있습니다. 이 장에서는 특히 “ubuntu docker 시작”과 관련된 자주 발생하는 문제와 그 해결 방법을 설명합니다.자주 발생하는 트러블과 해결 방법
1. “Cannot connect to the Docker daemon” 오류
이 오류는 Docker 데몬(dockerd)이 실행되지 않았거나, 권한 문제로 명령을 실행할 수 없을 때 자주 발생합니다.- 대처 방법:
- Docker 데몬이 실행 중인지 확인
sudo systemctl status docker
- 실행되지 않았다면 다음 명령으로 시작
sudo systemctl start docker
sudo
가 필요한 경우 붙여 실행하거나, 4장에 따라 “docker 그룹”에 자신의 사용자를 추가합시다.
2. 오래된 Docker 패키지 및 충돌 문제
과거에 “docker”, “docker.io”, “docker-engine” 등 다른 패키지를 설치한 경우, 충돌로 인한 문제가 발생할 수 있습니다.- 대처 방법: 오래된 패키지를 제거합니다.
sudo apt-get remove docker docker-engine docker.io containerd runc
3. 컨테이너 시작에 실패하는 경우
이미지 이름이나 명령이 잘못되었거나, 리소스 부족(메모리·디스크) 때문에 시작할 수 없는 경우가 있습니다.- 대처 방법:
- 이미지 이름 및 명령의 철자를 확인
docker images
로 올바른 이미지가 존재하는지 확인- 서버의 남은 디스크 용량 및 메모리를 확인
4. 포트 충돌 오류
이미 사용 중인 포트로 컨테이너를 시작하려 하면 오류가 발생합니다.- 대처 방법:
- 다른 포트 번호를 지정
- 기존 프로세스를 중지
5. rootless(루트리스) 모드 주의점
최근 Docker에서는 “root 권한 불필요”로 실행하는 모드도 있지만, 지원 버전 및 기능 제한에 주의가 필요합니다. 공식 문서와 오류 메시지를 참고합시다.실전 체크리스트
docker ps -a
로 컨테이너 상태 파악docker logs [컨테이너명]
로 오류 내용 확인journalctl -u docker
로 시스템 전체 Docker 관련 로그 확인
핵심 정리
Docker 관련 트러블의 대부분은 “권한”, “버전 충돌”, “설정 실수”에 의해 발생합니다. 어려울 때는 오류 메시지를 차분히 읽고, 필요에 따라 재설치나 설정을 재검토합시다.9. 요약 및 다음 단계
Docker를 능숙하게 다루는 첫걸음은 컨테이너 실행과 기본 명령에 익숙해지는 것입니다. 익숙해지면, 더욱 고급 운영에 도전해 보세요.이 글 요약
- Docker 개요와 장점 Ubuntu와의 친화성이 높아 어디서든 동일한 환경을 빠르게 재현할 수 있다는 점.
- 도입 전 준비와 포인트 Ubuntu 버전 및 하드웨어 요구사항, 권한, 오래된 패키지 정리 등.
- Docker Engine 설치 방법 공식 레포지토리를 사용해 안전하고 최신 Docker를 도입합니다.
- sudo 없이 작업 및 데몬 관리 방법 그룹 추가와 systemctl을 통한 자동 시작·중지.
- Ubuntu 컨테이너 실행 및 다양한 명령 사용법 컨테이해? 컨테이너 생성, 관리, 운영에 관한 기본 조작.
- 자주 발생하는 문제와 해결 방법 권한 및 버전 충돌 등 실무에서 자주 발생하는 문제의 해결 방법.
다음 단계·추가 활용으로
Docker를 능숙하게 다루는 첫걸음은 컨테이너 실행과 기본 명령에 익숙해지는 것입니다. 익숙해지면, 더욱 고급 운영에 도전해 보세요.- Dockerfile을 이용한 맞춤 컨테이너 구축 단순히 이미지를 사용하는 것에 그치지 않고, 자신의 용도에 맞게 커스터마이징한 이미지를 만들 수 있습니다.
- Docker Compose를 이용한 다중 컨테이너 연동 여러 서비스(예: Web+DB)의 동시 실행 및 관리도 간단하게.
- 볼륨 및 네트워크 기능 활용데이터 영속화와 다중 컨테이너 간 통신 관리도 가능합니다.
- Kubernetes 등 컨테이너 오케스트레이션 대규모 운영 및 자동 스케일링 등, 한 단계 더 진보된 클라우드 운영에도 도전할 수 있습니다.
마지막으로
Docker는 개발 환경 구축뿐만 아니라 서버 운영, 서비스 공개, 실험·학습 용도까지 폭넓게 활용할 수 있습니다。 먼저 한 번 직접 해보면서 그 편리함과 강력함을 체감해 보세요。 모르는 것이나 궁금한 것이 있으면 공식 문서와 각종 커뮤니티를 활용하고, 적극적으로 도전해 나갑시다。10. FAQ[자주 묻는 질문]
이 장에서는 「ubuntu docker 시작」 및 기사 내용에 관해 독자들로부터 특히 자주 제기되는 질문과 그 답변을 정리합니다。 초보자가 흔히 겪는 포인트와 실제 현장에서 자주 있는 의문에 초점을 맞췄습니다.Q1. Docker는 Ubuntu Desktop과 Ubuntu Server 중 어느 쪽에서도 사용할 수 있나요?
A. 네, 어느 쪽이든 이용 가능합니다. 명령어나 절차도 기본적으로 공통이지만, Server 쪽은 불필요한 GUI 등이 없고, 리소스 소비가 적어 본격 운영이나 서버 구축에는 Ubuntu Server 버전이 권장되는 경우가 많습니다.Q2. Ubuntu에 Docker Desktop이 필요합니까?
A. 아니요, Ubuntu의 경우는 「Docker Engine」만으로 충분합니다. Docker Desktop은 GUI 관리 도구이지만, Linux(Ubuntu)에서는 커맨드 라인이 더 적은 문제를 일으키고 일반적입니다. GUI로 관리하고 싶거나 학습 용도라면 Docker Desktop을 시도해도 좋습니다.Q3. rootless(루트리스) 모드란 무엇인가요?
A. rootless 모드란, root(관리자) 권한을 사용하지 않고 Docker를 실행할 수 있는 메커니즘입니다. 보안을 강화하고 싶은 환경이나 다수 사용자로 운영할 경우에 활용됩니다. 다만, 모든 기능을 사용할 수 없는 경우와 제약도 있으므로, 용도와 정책에 맞게 선택하십시오.Q4. 컨테이너에 영구적인 스토리지(데이터 저장 영역)를 부여하려면?
A. 「볼륨」이나 「바인드 마운트」 기능을 사용함으로써, 컨테이너를 삭제해도 데이터가 사라지지 않는 메커니즘을 구현할 수 있습니다. 예:docker run -v /host/path:/container/path ubuntu:22.04
이와 같이, 호스트 디렉터리와 컨테이너 내부 디렉터리를 연결하여 실행합니다.Q5. 컨테이너와 Docker 데몬의 자동 시작 설정은 어떻게 하나요?
A. Docker 데몬의 자동 시작은 5장에 따라sudo systemctl enable docker
로 설정할 수 있습니다。
또한, 특정 컨테이너를 서버 시작 시 자동으로 올리고 싶다면, 컨테이너 생성 시 --restart=unless-stopped
등의 옵션을 추가해 두면 편리합니다. 예:docker run --restart=unless-stopped -d --name myubuntu ubuntu:22.04 tail -f /dev/null
Q6. 다른 OS용 Docker 이미지도 Ubuntu에서 실행할 수 있나요?
A. 네, 기본적으로 「동일 CPU 아키텍처」의 Linux용 이미지라면 Ubuntu에서도 실행할 수 있습니다. 다만, Windows 전용이나 다른 아키텍처용 이미지는 동작하지 않습니다.Q7. 이미지와 컨테이너가 너무 많이 늘어났을 때 정리 방법은?
A. 불필요한 컨테이너와 이미지는docker rm
이나 docker rmi
로 삭제할 수 있습니다. 한 번에 정리하고 싶다면 아래 명령도 유용합니다.- 전체 중지된 컨테이너 삭제
docker container prune
- 미사용 이미지 삭제
docker image prune
- 불필요한 데이터 일괄 정리
docker system prune