정리/가상화

Ubuntu 에 Docker Compose 와 K3S Ubuntu 설치하기

워로디스 2026. 3. 28. 14:32

 


2026년 3월 28일 현재 공식 문서 기준으로, Docker 쪽은 현재 Ubuntu 22.04 / 24.04 / 25.10용 공식 설치 절차를 따랐고, Compose는 plugin 방식(docker compose)으로 설치합니다. K3s는 공식 Quick-Start 설치 스크립트를 기준으로 했습니다.

1) Docker Engine + Docker Compose 설치

 

Docker 공식 문서는 현재 Ubuntu에서 Docker apt 저장소 + keyring + docker.sources 방식으로 설치하도록 안내합니다. Compose는 별도 docker-compose 바이너리 대신 docker-compose-plugin 설치가 현재 표준입니다.

 

설치

sudo apt-get update && \
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y "$pkg"; done && \
sudo apt-get install -y 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.asc && \
sudo chmod a+r /etc/apt/keyrings/docker.asc && \
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt-get update && \
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && \
sudo usermod -aG docker "$USER"

 

설치 확인

 

Docker 문서상 Ubuntu에서는 서비스가 자동 시작되며, 비 root 사용은 docker 그룹에 사용자를 넣은 뒤 반영하면 됩니다. 반영은 로그아웃/로그인이 기본이고, 즉시 적용하려면 newgrp docker를 쓸 수 있습니다. 단, docker 그룹은 root 수준 권한을 부여하므로 보안상 주의가 필요합니다.

newgrp docker

 

그 다음 확인:

docker --version
docker compose version
docker run hello-world

 

2) K3s 설치

 

K3s 공식 Quick-Start는 지금도 curl -sfL https://get.k3s.io | sh - 를 기본 설치 방법으로 안내합니다. 이 스크립트는 서비스 등록까지 수행하고, kubectl도 함께 설치하며, kubeconfig는 /etc/rancher/k3s/k3s.yaml에 생성됩니다.

 

설치

curl -sfL https://get.k3s.io | sh -

 

설치 확인

기본 kubeconfig는 root 소유, 기본 mode 600입니다. 그래서 가장 안전하고 단순한 확인 방법은 sudo kubectl 을 쓰는 것입니다.

sudo kubectl version
sudo kubectl get nodes
sudo kubectl get pods -A

 

3) K3s를 비 root 사용자로도 쓰고 싶을 때

 

여기서 주의할 점이 있습니다.
/etc/rancher/k3s/k3s.yamladmin kubeconfig이고, 이 파일은 system:admin / system:masters 권한으로 클러스터 전체에 unrestricted access를 줍니다. 공식 문서도 기본값이 root/600이라고 설명합니다. 따라서 무심코 chmod 644로 넓게 공개하는 것은 단일 사용자 개발 머신이 아닐 때 권장되지 않습니다.

단일 사용자 테스트 머신에서 정말 간단히 쓰려면, 설치 시점에 공식 옵션으로 kubeconfig 권한을 열 수 있습니다. K3s 문서에는 K3S_KUBECONFIG_MODE="644" 예시가 있습니다.

curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -
kubectl get nodes

 

여러 사용자가 함께 쓰는 서버라면, 644 대신 root + 특정 그룹만 읽기 가능하도록 관리하는 편이 더 안전합니다. K3s는 --write-kubeconfig-group / K3S_KUBECONFIG_GROUP 옵션도 제공합니다.

 

4) 최종 요약

 

Docker + Compose

sudo apt-get update && \
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y "$pkg"; done && \
sudo apt-get install -y 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.asc && \
sudo chmod a+r /etc/apt/keyrings/docker.asc && \
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt-get update && \
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && \
sudo usermod -aG docker "$USER"

 

확인:

newgrp docker
docker --version
docker compose version
docker run hello-world

 

K3s

curl -sfL https://get.k3s.io | sh -
sudo kubectl version
sudo kubectl get nodes
sudo kubectl get pods -A

 

이 구성이 지금 기준으로 가장 무난하고 정확합니다.

참고