• HJ
    ActionMaskTech. Blog
Information
  • About
Blog
  • 전체
    16
  • AI
    4
  • Project
    5
  • Tip
    7
  • Tag
  • Github
  • RSS
  • ©2026 ActionMask. All Rights Reserved.
  1. Home

Docker 사용자 그룹 권한 설정의 문제

Docker 사용 시 root 권한과 관련된 보안 이슈 및 권장 설정에 대한 글 입니다.
Tip
2026-02-10 23:12
11분

docker
linux
security
sudo
container
root
In this article
  • Docker와 root 권한
  • 일반적인 Docker 권장 설정을 따르지 말아야 하는 이유
  • 대안1: Rootless Docker
  • 대안2: Podman
  • 결론
  • 참고 자료

Docker와 root 권한

도커(Docker)는 컨테이너 기반의 가상화 기술로, 전세계 개발자들로부터 큰 사랑을 받고 있습니다. 대부분의 개발자나 운영팀에서는 docker를 필수로 사용하고 있다고 해도 과언이 아닐 것입니다.
불과 몇년 전 어느 기사에서는 구글에서는 모든것이 도커 컨테이너로 돌아간다는 이야기도 있었을 정도로 도커는 현대 소프트웨어 개발 및 배포에 있어 핵심적인 역할을 하고 있습니다.

저는 도커를 꽤 오랫동안 사용하면서 여러 사람들의 권장 설정과 달리 sudo 명령어를 사용하여 도커를 실행해 왔습니다. 주변 개발자들이나 운영팀에서는 편의성을 위해 보통 도커 그룹에 사용자를 추가하여 sudo 없이 도커를 실행하는 방식을 권장하곤 했습니다.
도커 데몬은 기본적으로 root 사용자 소유의 유닉스 소켓에 바인딩되기 때문에, 일반 사용자 계정은 sudo를 통해서만 접근할 수 있습니다. 즉, 도커 데몬은 항상 (일반적으로) root 사용자로 실행되어야 합니다.

최근 돌풍을 일으키고 있는 OpenClaw를 도커 컨테이너에 격리시켜 설치해보았습니다. 그런데, 꽤 많은 사람들이 도커 권한과 관련되어 문제를 겪고 있는 것을 알게되었고, 상당수의 개발자 분들조차 도커가 특별한 설정을 하지 않았다면 root 권한으로 동작하고 있는 것을 모르고 있다는 것을 알게되었습니다.
이번 기회에 제가 왜 sudo를 사용하여 도커를 실행하는지, 그리고 일반적인 권장 설정을 따르지 않는 이유에 대해 설명해보고자 합니다.

일반적인 Docker 권장 설정을 따르지 말아야 하는 이유

많은 사람들이 도커를 실행할 때마다 sudo를 사용하는 것이 번거롭다고 느낍니다. 그래서 일반적으로 도커 그룹에 사용자를 추가하여 sudo 없이 도커를 실행할 수 있도록 설정하는 것을 권장하고 있으며, 공식 도커 문서에서도 이러한 방법을 안내하고 있습니다.
하지만, 이 방법은 보안상 심각한 위험을 초래할 수 있습니다. 도커 그룹에 속한 사용자는 도커 데몬에 대한 완전한 접근 권한을 가지게 되며, 이는 곧 시스템 전체에 대한 root 권한을 의미합니다.

저희는 일반적으로 보안을 위해 root 사용자를 피하고, 일반 사용자로 시스템에 접근하여 꼭 필요한 작업을 할 때만 sudo를 사용합니다. 일반적으로 권장하는 도커 그룹에 사용자를 추가하는 행위는 일반 사용자 계정을 root 권한과 동등하게 만들어 버리는 것과 같습니다.
Dan Walsh라는 리눅스 보안 전문가가 작성한 글에서 이 문제를 아주 명확하게 설명하고 있습니다. 도커 그룹에 속한 사용자는 도커 데몬을 통해 호스트 시스템의 파일 시스템에 접근할 수 있으며, 심지어 호스트의 root 권한을 획득할 수도 있습니다.
이 글이 10년전에 작성된 글임에도 불구하고, 여전히 도커 권한 설정과 관련된 문제는 현재진행형이라는 점이 놀랍습니다.

전통적으로 sudo 명령어는 특정 명령어에 대해 일시적으로 root 권한을 부여하는 안전한 방법으로 사용되어 왔습니다. 또한, sudo는 명령어 실행 로그를 남기기 때문에, 누가 언제 어떤 명령어를 실행했는지 추적할 수 있습니다.
반면, 도커 그룹에 사용자를 추가하는 것은 이러한 추적 기능을 제공하지 않으며, 도커 데몬에 대한 무제한 접근 권한을 부여합니다. 이는 보안 사고 발생 시 책임 소재를 명확히 하기 어렵게 만듭니다.

도커 공식 문서에서도 도커 그룹에 사용자를 추가하는 것이 보안 위험을 초래할 수 있음을 경고하고 있습니다.

대안1: Rootless Docker

저와 같은 입장을 가진 사람들이 많아서, 도커 커뮤니티에서는 최근에 Rootless Docker라는 기능을 도입했습니다. Rootless Docker는 도커 데몬과 컨테이너를 비루트(non-root) 사용자로 실행할 수 있도록 지원합니다. 이는 도커 데몬과 컨테이너가 호스트 시스템의 root 권한을 필요로 하지 않도록 하여 보안성을 크게 향상시킵니다.

하지만 실용적인 차원에서 보면, 네트워킹/포트 바인딩이나 일부 기능(특권 컨테이너 등)에서 제약이 생길 수 있고, 환경에 따라 세팅/운영 난이도가 급격하게 올라가기도 합니다.

대안2: Podman

Docker보다 사실 더 깔끔한 대안으로, Podman을 사용하는 것도 고려해 볼만 합니다. Podman은 도커와 유사한 컨테이너 관리 도구이지만, 기본적으로 비루트(non-root) 사용자로 실행되도록 설계되었습니다. Podman은 도커와 호환되는 CLI를 제공하며, 대부분의 도커 명령어를 동일하게 사용할 수 있습니다.
Podman은 도커 데몬이 필요 없기 때문에, 도커 데몬이 가지는 보안 취약점에서 자유로울 수 있습니다. 또한, Podman은 루트 권한 없이 컨테이너를 실행할 수 있기 때문에, 도커 그룹에 사용자를 추가하는 것과 같은 보안 위험을 피할 수 있습니다.
하지만 Podman 생태계가 도커만큼 크지 않고, 일부 도커 전용 툴링이나 오케스트레이션 솔루션과의 호환성 문제가 있을 수 있다는 점은 고려해야 합니다.

결론

편의를 위해 도커 그룹에 사용자를 추가하여 sudo 없이 도커를 실행하는 것은 심각한 보안 위험을 초래할 수 있습니다. 도커 그룹에 속한 사용자는 도커 데몬을 통해 호스트 시스템의 root 권한을 획득할 수 있기 때문에, 이는 일반 사용자 계정을 사실상 root 권한과 동등하게 만들어 버리는 것과 같습니다.
저는 개인적으로 도커를 실행할 때마다 sudo를 사용하는 것을 추천합니다. 이는 보안성을 유지하면서도 필요한 경우에만 root 권한을 부여하는 안전한 방법이기 때문입니다.

멀티유저 서버/업무 서버 상에서 도커를 설치하여 운용한다면, 도커 그룹에 사용자를 추가하지 말고 sudo로만 실행하는 것이 안전합니다. 혹은 Rootless Docker나 Podman과 같은 대안을 고려해 보는 것도 좋습니다.
다만, 현실적으로는 개인 PC에 혼자만 사용하는 용도로 도커를 사용한다면 상관이 없겠지요.

이상 도커의 root 권한과 관련된 최근의 이슈들을 보면서 제가 생각하는 바를 정리해 보았습니다. 모두 안전한 도커 사용하시기 바랍니다.

참고 자료

  • Why we don't let non-root users run Docker in CentOS, Fedora, or RHEL - Dan Walsh
  • Docker Post-installation steps for Linux - Docker Official Documentation
Tip 카테고리의 다른 글
Ubuntu 24.04 LTS에 r8125 랜카드 드라이버 설치
Ubuntu 24.04 LTS에 r8125 랜카드 드라이버 설치
Ubuntu 24.04 LTS에 r8125 랜카드 드라이버를 설치하는 방법을 알아봅니다.
2025-11-16 17:34
Vercel 배포 시 Serverless Function 250MB 제한 오류
Vercel 배포 시 Serverless Function 250MB 제한 오류
Next.js 배포 시 Serverless Function의 용량이 과도하게 잡히는 문제
2025-06-28 21:54
Next.js 프로젝트에서 MDX 코드 블럭 꾸미기
Next.js 프로젝트에서 MDX 코드 블럭 꾸미기
rehype-pretty-code 플러그인으로 MDX 코드 블럭을 꾸며보자.
2025-06-08 20:31
Python Flask를 위한 Gunicorn + NGINX 설정 방법
Python Flask를 위한 Gunicorn + NGINX 설정 방법
Ubuntu에서 Flask 어플리케이션을 Nginx와 Gunicorn을 이용해 서빙해보자.
2024-08-24 13:46
Ubuntu 설치 후 짜잘한 설정 팁
Ubuntu 설치 후 짜잘한 설정 팁
개인적으로 주로 하는 설정 작업을 정리해 보았습니다.
2023-03-02 11:36
Let's Encrypt 설치 및 자동 갱신 (feat. Cloudflare)
Let's Encrypt 설치 및 자동 갱신 (feat. Cloudflare)
무료 SSL 인증서를 설정하고 자동 갱신하자.
2022-02-16 17:34