EQVPS

VPS에 Docker 설치하는 방법

Ubuntu에 Docker Engine과 Compose 플러그인을 제대로 설치하세요 — 오래된 배포판 패키지가 아니라 Docker 공식 저장소에서 — 그런 다음 테스트 컨테이너를 실행하고 부팅 시 자동 시작하도록 설정합니다. 몇 개의 명령으로 작동하는 컨테이너 호스트까지.

Docker는 앱과 그것에 필요한 모든 것을 어디서든 동일하게 실행되는 컨테이너로 패키징합니다 — VPS에서 서비스를 셀프 호스팅하는 가장 깔끔한 방법입니다. Ubuntu와 Debian에서 유일한 함정은 배포판 자체 저장소의 버전이 종종 오래되었고 현대적인 Compose 플러그인 없이 제공된다는 점입니다. 대신 Docker 공식 저장소에서 설치하세요. 전체 과정은 다음과 같습니다.

1. Docker 공식 저장소 설정 (Ubuntu)

sudo apt update
sudo apt 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

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2. Docker Engine과 Compose 설치

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3. 실행 중이며 부팅 시 활성화되는지 확인

sudo systemctl enable --now docker
sudo docker run --rm hello-world

hello-world 컨테이너가 다운로드되어 성공 메시지를 출력하고 종료됩니다 — 엔진이 작동한다는 증거입니다.

4. (선택) sudo 없이 Docker 실행

sudo usermod -aG docker $USER
# 그룹 적용을 위해 로그아웃 후 다시 로그인

신뢰하는 사용자에게만 이렇게 하세요 — docker 그룹 접근은 사실상 호스트에서 root와 같습니다.

실제 컨테이너 간단 실행

docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# http://YOUR.SERVER.IP:8080 방문

--restart unless-stopped가 재부팅 후에도 컨테이너가 돌아오게 만드는 부분입니다.

솔직한 주의

다음 단계

Docker를 설치하면 거의 모든 것을 셀프 호스팅할 수 있습니다. 하나의 IP 뒤에서 여러 서비스 셀프 호스팅하기를 참고하거나, RustDesk 원격 데스크톱 서버Uptime Kuma 모니터링 같은 구체적인 Docker 구축 사례를 확인하세요. 도메인과 HTTPS를 앞에 두려면 nginx 리버스 프록시 설정 방법을 참고하세요.

자주 묻는 질문

'apt install docker.io'와 Docker 저장소 중 무엇을 써야 하나요?

최신 버전을 원한다면 Docker 공식 저장소(아래 단계)를 사용하세요. 배포판의 docker.io 패키지는 편리하지만 종종 뒤처져 있고, 현대적인 'docker compose' 플러그인은 공식 패키지에 함께 제공됩니다. 잠깐 쓰고 버릴 서버라면 docker.io로도 충분합니다.

'docker compose'와 'docker-compose'의 차이는 무엇인가요?

예전의 'docker-compose'는 별도의 Python 도구였습니다(하이픈 사용). 현재 것은 'docker compose'(공백 사용)로, Docker에 번들된 플러그인입니다. 플러그인을 사용하세요 — 독립형 도구는 레거시입니다. 아래처럼 docker-compose-plugin을 설치하면 얻게 됩니다.

매번 sudo를 입력하지 않고 Docker를 실행하려면요?

사용자를 docker 그룹에 추가하세요: 'sudo usermod -aG docker $USER', 그런 다음 로그아웃 후 다시 로그인합니다. 이는 사실상 컨테이너를 통한 root 수준 접근을 부여하는 것이므로, 자신의 서버에서 신뢰하는 사용자에게만 적용하세요.

Docker는 얼마나 많은 RAM이 필요한가요?

Docker 자체는 가볍습니다. 중요한 건 실행하는 컨테이너들입니다. 작은 앱 한두 개는 1GB 서버에서도 충분히 돌아가며, 더 무거운 스택(데이터베이스, 여러 서비스)은 더 넉넉한 여유가 필요합니다. Docker가 아니라 워크로드에 맞춰 VPS 크기를 정하세요.

재부팅해도 컨테이너가 살아남나요?

그렇게 지정한 경우에만요. 아래 단계에 따라 Docker 서비스는 부팅 시 활성화되며, '--restart unless-stopped'로(또는 Compose에서 그 정책으로) 시작한 컨테이너는 자동으로 돌아옵니다. 재시작 정책이 없으면 재부팅 후 컨테이너는 멈춘 채로 남습니다.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.