Bricoleur88 Tech Insight

Tech News, Insights & Opinions

Post

lazydocker 사용법: Docker와 Docker Compose를 터미널에서 편하게 관리하는 방법

lazydocker를 이용한 Docker 컨테이너 관리 화면

Docker를 운영하다 보면 docker ps, docker logs, docker stats, docker restart 같은 명령어를 반복해서 사용하게 됩니다.

컨테이너가 한두 개라면 큰 문제가 없지만 Docker Compose를 이용해 여러 서비스를 운영하기 시작하면 컨테이너 상태 확인, 로그 조회, 재시작, 이미지 및 볼륨 관리가 점점 번거로워집니다.

이런 Docker 관리 작업을 터미널 하나에서 훨씬 편리하게 처리할 수 있도록 도와주는 오픈소스 도구가 있습니다.

바로 lazydocker입니다.

lazydocker는 Docker와 Docker Compose를 위한 TUI(Terminal User Interface) 기반 Docker 관리 도구입니다.

GUI가 없는 Ubuntu Server나 SSH 환경에서도 사용할 수 있기 때문에 Docker 기반 서버를 자주 관리하는 개발자나 시스템 엔지니어라면 한 번 사용해볼 만한 도구입니다.


lazydocker란?

lazydocker는 Jesse Duffield가 개발한 오픈소스 Docker 관리 프로그램입니다.

공식 GitHub 프로젝트:

jesseduffield/lazydocker

Go 언어로 개발되었으며 MIT License로 배포되고 있습니다.

일반적으로 Docker를 관리하려면 다음과 같은 명령어들을 사용합니다.

docker ps
docker logs -f container-name
docker stats
docker restart container-name
docker images
docker volume ls
docker compose ps
docker compose logs

lazydocker를 사용하면 이러한 작업 상당수를 하나의 터미널 화면에서 수행할 수 있습니다.

쉽게 표현하면 lazydocker는

Docker CLI와 Portainer 사이에 위치한 경량 Docker 관리 도구

라고 볼 수 있습니다.

Portainer처럼 브라우저로 접속하는 별도의 Docker 관리 서버를 설치할 필요가 없고, 기존 Docker CLI보다 여러 컨테이너의 상태를 훨씬 직관적으로 확인할 수 있다는 것이 장점입니다.


lazydocker가 필요한 이유

Docker Compose 기반으로 다음과 같은 서비스를 운영한다고 가정해보겠습니다.

frontend
backend
postgres
redis
nginx
mediamtx
prometheus
grafana

갑자기 backend 컨테이너에 문제가 발생했습니다.

일반적인 Docker CLI 환경에서는 먼저 컨테이너 상태를 확인합니다.

docker compose ps

그다음 로그를 확인합니다.

docker compose logs -f backend

문제가 확인되었다면 컨테이너를 재시작할 수도 있습니다.

docker compose restart backend

CPU와 Memory 사용량까지 확인하고 싶다면 다시 다음 명령어를 실행합니다.

docker stats

Docker 명령어 자체가 어렵지는 않습니다.

문제는 이 과정을 계속 반복해야 한다는 것입니다.

lazydocker에서는 이런 작업을 하나의 화면에서 처리할 수 있습니다.

컨테이너 상태 확인
        ↓
로그 확인
        ↓
CPU / Memory 확인
        ↓
컨테이너 재시작
        ↓
다시 로그 확인

Docker 서버를 자주 관리하는 사용자라면 이 차이가 생각보다 큽니다.


lazydocker 주요 기능

1. Docker 컨테이너 상태 확인

lazydocker를 실행하면 현재 실행 중인 Docker 컨테이너과 Docker Compose 서비스를 한눈에 확인할 수 있습니다.

CLI에서 사용하는

docker ps

또는

docker compose ps

와 같은 역할을 보다 직관적인 화면으로 확인할 수 있습니다.

특히 Docker Compose로 여러 서비스를 동시에 운영하는 환경에서 유용합니다.


2. Docker 로그 실시간 확인

lazydocker에서 개인적으로 가장 유용한 기능 중 하나는 컨테이너 로그 확인입니다.

일반적으로 Docker 로그를 실시간으로 확인하려면 다음 명령어를 사용합니다.

docker logs -f backend

Docker Compose 환경이라면 다음과 같이 사용하기도 합니다.

docker compose logs -f backend

lazydocker에서는 원하는 컨테이너를 선택하면 해당 컨테이너의 로그를 바로 확인할 수 있습니다.

다른 컨테이너의 로그를 확인하고 싶다면 명령어를 다시 입력할 필요 없이 컨테이너만 이동하면 됩니다.

다수의 Microservice나 Docker Compose 서비스를 운영하면서 장애 원인을 분석할 때 특히 편리합니다.


3. Docker 컨테이너 재시작

컨테이너 상태가 비정상적이거나 서비스 재시작이 필요한 경우도 많습니다.

일반적인 Docker CLI에서는 다음과 같이 실행합니다.

docker restart backend

또는

docker compose restart backend

lazydocker에서는 해당 컨테이너을 선택한 뒤 메뉴를 이용해 재시작할 수 있습니다.

따라서

상태 확인 → 로그 확인 → Restart → 로그 재확인

같은 반복적인 장애 대응 작업을 빠르게 수행할 수 있습니다.


4. Docker CPU와 Memory 사용량 확인

Docker 서버의 상태를 확인할 때 자주 사용하는 명령어가 있습니다.

docker stats

이 명령을 이용하면 각 컨테이너의 CPU, Memory, Network 등의 사용량을 확인할 수 있습니다.

lazydocker 역시 컨테이너별 리소스 사용 상태를 확인할 수 있으며 일부 정보는 그래프 형태로 표시됩니다.

따라서 서버에 SSH로 접속한 뒤

어떤 컨테이너가 CPU를 많이 사용하고 있지?

어떤 컨테이너의 Memory 사용량이 높은가?

같은 문제를 빠르게 확인하기 좋습니다.

다만 장기간 서버 상태를 수집하거나 임계치 기반 알림이 필요하다면 lazydocker 대신 또는 함께

Prometheus
+
Node Exporter / cAdvisor
+
Grafana

등의 모니터링 시스템을 사용하는 것이 적절합니다.

lazydocker는 장기 모니터링 도구보다는 현재 Docker 상태를 빠르게 확인하기 위한 운영 도구에 가깝습니다.


Docker Compose 관리에 특히 편리한 lazydocker

lazydocker는 단일 Docker 컨테이너 환경에서도 사용할 수 있지만 Docker Compose 환경에서 장점이 더욱 크게 느껴집니다.

예를 들어 다음과 같은 docker-compose.yml을 사용한다고 가정해보겠습니다.

services:

  frontend:
    image: my-frontend:1.2.0

  backend:
    image: my-backend:1.4.3

  postgres:
    image: postgres:16

  redis:
    image: redis:7

  nginx:
    image: nginx:latest

일반적인 서버 운영 과정에서는 각 서비스의 상태와 로그를 계속 확인해야 합니다.

lazydocker를 사용하면 프로젝트와 컨테이너 사이를 이동하면서 상태와 로그를 확인할 수 있어 Docker Compose 관리가 상당히 편리해집니다.

특히 다음과 같은 환경이라면 유용합니다.

  • Docker Compose 기반 개발 서버
  • 사내 테스트 서버
  • 온프레미스 Docker 서버
  • 개인 홈서버
  • 여러 Microservice를 운영하는 환경

Ubuntu Server와 SSH 환경에서 lazydocker가 좋은 이유

lazydocker가 특히 편리한 환경은 GUI가 없는 Linux 서버입니다.

대부분의 Ubuntu Server는 SSH를 통해 관리합니다.

ssh user@server-ip

접속한 이후 사용할 수 있는 인터페이스는 기본적으로 터미널입니다.

물론 Portainer를 설치하면 Web Browser를 이용해 Docker를 관리할 수도 있습니다.

하지만 단순한 Docker 관리를 위해 별도의 Web 관리 서비스를 추가하고 싶지 않은 경우도 있습니다.

lazydocker는 터미널 프로그램이기 때문에 SSH 접속만 가능하면 바로 사용할 수 있습니다.

구조를 간단하게 표현하면 다음과 같습니다.

관리자 PC
   │
   │ SSH
   ▼
Ubuntu Server
   │
   ├─ Docker
   │   ├─ frontend
   │   ├─ backend
   │   ├─ postgres
   │   └─ nginx
   │
   └─ lazydocker

따라서 Ubuntu Docker 관리 도구를 찾고 있다면 lazydocker는 상당히 좋은 선택지입니다.


lazydocker 설치 방법

lazydocker는 Linux, macOS, Windows에서 사용할 수 있습니다.

운영체제에 따라 여러 설치 방법이 제공됩니다.


macOS에서 lazydocker 설치

Homebrew를 사용한다면 가장 간단합니다.

brew install lazydocker

또는 공식 Homebrew Tap을 이용할 수 있습니다.

brew install jesseduffield/lazydocker/lazydocker

설치가 완료되었다면 다음 명령어로 실행합니다.

lazydocker

Windows에서 lazydocker 설치

Windows에서는 Scoop을 사용할 수 있습니다.

scoop install lazydocker

Chocolatey를 사용한다면 다음과 같이 설치할 수 있습니다.

choco install lazydocker

Windows Terminal이나 PowerShell 환경에서 사용할 수 있습니다.


Linux와 Ubuntu에서 lazydocker 설치

Linux에서는 공식 설치 스크립트를 이용하는 방법도 제공됩니다.

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

다만 인터넷에서 다운로드한 스크립트를 바로 Shell로 전달하는

curl ... | bash

방식은 운영 서버에서 사용할 경우 스크립트 내용을 먼저 확인하는 것을 권장합니다.

보안 정책이 엄격한 서버라면 GitHub Release에서 바이너리를 직접 다운로드하여 설치하는 방법을 고려할 수도 있습니다.


lazydocker 실행 방법

설치가 끝나면 터미널에서 다음 명령어만 입력하면 됩니다.

lazydocker

자주 사용한다면 Shell Alias를 등록하는 것도 편리합니다.

예를 들어

alias lzd='lazydocker'

.bashrc 또는 .zshrc에 등록하면

lzd

만 입력해서 lazydocker를 실행할 수 있습니다.


lazydocker와 Portainer 비교

Docker 관리 도구를 찾다 보면 lazydocker와 함께 Portainer도 많이 언급됩니다.

하지만 두 프로그램의 목적은 조금 다릅니다.

항목lazydockerPortainer
UITerminal TUIWeb GUI
Browser 필요없음필요
SSH 환경매우 편리상대적으로 불편
관리 서비스 설치불필요필요
설치 복잡도낮음상대적으로 높음
컨테이너 로그 확인편리편리
컨테이너 재시작가능가능
여러 사용자 관리제한적유리
권한 관리제한적유리
여러 서버 중앙 관리제한적유리
개발자 개인 사용매우 적합적합
대규모 운영보조 도구상대적으로 적합

따라서 단순히 어떤 프로그램이 더 좋다고 비교하기는 어렵습니다.

다음과 같은 환경이라면 lazydocker가 적합합니다.

개발자 개인 Docker 환경
개발 서버
테스트 서버
Ubuntu Server
SSH 중심 서버 관리
소규모 온프레미스 Docker 환경

반대로 다음과 같은 요구사항이 있다면 Portainer 쪽이 더 적합할 수 있습니다.

여러 사용자
Web 기반 관리
사용자 권한 관리
여러 Docker 서버 관리
중앙 집중형 Docker 관리

두 프로그램을 함께 사용하는 것도 가능합니다.


lazydocker와 Docker Desktop의 차이

Docker Desktop 역시 GUI를 이용해 Docker 컨테이너과 이미지를 관리할 수 있습니다.

하지만 Docker Desktop은 일반적으로 개발자의 PC에서 사용하는 Docker 실행 및 개발 환경이고, lazydocker는 이미 Docker가 실행되고 있는 시스템을 터미널에서 관리하기 위한 도구에 가깝습니다.

특히 Docker Desktop을 설치하지 않는 Ubuntu Server 환경에서는 lazydocker의 장점이 분명합니다.


lazydocker의 장점

lazydocker를 실제 Docker 서버 관리 관점에서 보면 다음과 같은 장점이 있습니다.

1. 별도의 Web Server가 필요하지 않다

Portainer 같은 별도 관리 서비스를 추가할 필요가 없습니다.

2. SSH 환경에서 사용할 수 있다

Linux Server에 SSH 접속한 상태에서 바로 실행할 수 있습니다.

3. Docker Compose 관리가 편리하다

여러 서비스의 상태와 로그를 빠르게 전환하면서 확인할 수 있습니다.

4. Docker 명령어 입력 횟수를 줄일 수 있다

docker ps, docker logs, docker stats, docker restart 같은 반복적인 명령을 줄일 수 있습니다.

5. 설치가 간단하다

단일 프로그램 형태에 가까워 기존 Docker 환경에 부담을 거의 주지 않습니다.

6. Docker 환경을 직관적으로 볼 수 있다

컨테이너, 이미지, 볼륨과 로그를 하나의 인터페이스에서 확인할 수 있습니다.


lazydocker의 단점과 주의점

편리한 도구이지만 몇 가지 주의점도 있습니다.

Docker CLI를 완전히 대체하지는 않는다

Docker를 운영한다면 최소한 다음 명령과 개념은 알고 있는 것이 좋습니다.

docker ps
docker logs
docker exec
docker inspect
docker compose
docker images
docker volume
docker network

lazydocker는 Docker CLI를 몰라도 Docker를 관리하게 만드는 프로그램이라기보다는 이미 Docker를 사용하는 사용자의 반복 작업을 줄이는 도구에 가깝습니다.


운영 서버에서는 삭제 기능을 주의해야 한다

Docker 서버에는 불필요한 Image, Container, Volume이 쌓일 수 있습니다.

lazydocker에서도 이러한 리소스를 삭제할 수 있습니다.

하지만 특히 Docker Volume에는 Database나 중요한 애플리케이션 데이터가 저장되어 있을 수 있습니다.

따라서 운영 서버에서 Volume이나 Container를 삭제할 때는 반드시 삭제 대상과 데이터 저장 구조를 확인해야 합니다.

편리한 TUI가 잘못된 삭제 작업까지 막아주는 것은 아닙니다.


어떤 사용자에게 lazydocker를 추천할까?

다음 조건 중 하나라도 해당한다면 lazydocker를 사용해볼 만합니다.

Docker Compose를 자주 사용하는 개발자

여러 Container의 상태와 로그를 자주 확인한다면 편리합니다.

Ubuntu Server를 SSH로 관리하는 사용자

Web UI 없이 Docker 상태를 직관적으로 확인할 수 있습니다.

docker logs를 하루에도 여러 번 사용하는 사용자

다른 컨테이너 로그로 이동할 때마다 명령어를 다시 입력하지 않아도 됩니다.

개발 및 테스트 Docker 서버를 관리하는 사용자

장애 확인, Restart, 로그 확인을 빠르게 반복할 수 있습니다.

Portainer 설치까지는 필요하지 않은 환경

Docker Server에 관리 서비스를 하나 더 운영할 필요 없이 간단하게 사용할 수 있습니다.


lazydocker를 사용해보니 가장 편리한 부분

lazydocker의 기능 하나하나는 대부분 Docker CLI로도 수행할 수 있습니다.

그래서 처음 보면

Docker 명령어를 화면으로 보여주는 프로그램 아닌가?

라고 생각할 수 있습니다.

사실 틀린 설명은 아닙니다.

하지만 Docker 서버를 실제로 관리해보면 다음과 같은 작업을 매우 자주 반복하게 됩니다.

docker ps
   ↓
docker logs
   ↓
docker stats
   ↓
docker restart
   ↓
docker logs

lazydocker의 진짜 장점은 새로운 Docker 기능을 제공하는 것이 아니라 이 반복적인 운영 흐름을 하나의 화면으로 묶어준다는 것입니다.

특히 Docker Compose 기반으로 여러 서비스를 운영하면서 Ubuntu Server를 SSH로 관리한다면 체감되는 편리함이 상당합니다.


결론: Docker를 자주 사용한다면 설치해볼 만한 TUI

lazydocker는 Docker CLI를 대체하는 프로그램이 아닙니다.

오히려 Docker CLI를 어느 정도 이해하고 있는 사용자가 Docker를 더욱 빠르고 편하게 관리할 수 있도록 만들어주는 생산성 도구에 가깝습니다.

특히

Docker + Docker Compose + Ubuntu Server + SSH

환경을 자주 사용하는 개발자나 시스템 엔지니어라면 상당히 유용합니다.

매번 다음과 같은 명령어를 입력하고 있다면

docker ps
docker logs
docker stats
docker restart

한 번쯤 lazydocker를 설치해보는 것을 추천합니다.

개인적으로 lazydocker를 한 문장으로 표현한다면 다음과 같습니다.

Docker CLI의 강력함은 유지하면서 반복적인 Docker 관리 작업을 훨씬 편하게 만들어주는 Terminal UI.


lazydocker FAQ

lazydocker는 무료인가요?

네. lazydocker는 오픈소스 프로젝트이며 MIT License로 배포되고 있습니다.


lazydocker는 Docker Compose를 지원하나요?

네. Docker와 Docker Compose 환경을 관리하기 위한 기능을 제공합니다. 특히 여러 Compose 서비스를 운영할 때 로그와 상태를 확인하기 편리합니다.


Ubuntu Server에서 lazydocker를 사용할 수 있나요?

가능합니다.

GUI가 없는 Ubuntu Server에서도 터미널에서 실행할 수 있기 때문에 SSH 기반 서버 관리 환경에 적합합니다.


lazydocker와 Portainer 중 어떤 것이 좋나요?

용도가 다릅니다.

개발자 개인이나 SSH 중심의 서버 관리라면 lazydocker가 간단하고 편리합니다.

여러 사용자, 권한 관리, 중앙 관리, Web UI가 필요하다면 Portainer가 더 적합할 수 있습니다.


lazydocker를 사용하면 Docker 명령어를 몰라도 되나요?

권장하지 않습니다.

lazydocker는 Docker CLI를 쉽게 사용할 수 있도록 도와주는 도구이지 Docker 자체의 개념을 대신해주는 프로그램은 아닙니다.

최소한 Container, Image, Volume, Network, Docker Compose 등에 대한 기본적인 이해는 필요합니다.


lazydocker는 운영 서버에서도 사용할 수 있나요?

기술적으로 가능합니다.

다만 운영 서버에서는 Container, Image, 특히 Volume 삭제 작업에 주의해야 합니다.

서비스 관리 및 로그 확인 용도로 사용하고 위험한 작업은 Docker 구조를 충분히 확인한 뒤 수행하는 것이 좋습니다.


lazydocker 프로젝트 정보

  • 프로젝트명: lazydocker
  • 개발자: Jesse Duffield
  • 개발 언어: Go
  • 라이선스: MIT License
  • 지원 환경: Linux, macOS, Windows
  • GitHub: github.com/jesseduffield/lazydocker

Docker를 자주 사용하는 개발자라면 GitHub에서 프로젝트를 확인하고 직접 사용해보는 것을 추천합니다.


Bricoleur88 Tech Insight 에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다