docker 설치 추가

This commit is contained in:
Jerry Chae committed 2026-05-13 15:13:24 +09:00
1 parent 0fe2ad11d5
commit cf4863c575
2 files changed
+215

No files matched your search

+30
View File
@@ -7,6 +7,7 @@
- [tmux](https://github.com/tmux/tmux) - 터미널 멀티플렉서
- [bottom](https://github.com/ClementTsang/bottom) - 호스트 모니터링
- [lazygit](https://github.com/jesseduffield/lazygit) - Git 터미널 UI
- [Docker](https://www.docker.com/) - 컨테이너 플랫폼 (Linux 자동 설치, Mac/Windows는 안내)
- [ctop](https://github.com/bcicen/ctop) - 컨테이너 모니터링
- [uv](https://docs.astral.sh/uv/) - Python 패키지 관리자
- [pi](https://pi.dev/) - CLI AI 코딩 어시스턴트 + 추천 패키지 일괄 설치
@@ -33,6 +34,12 @@ curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-bott
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-lazygit.sh?ref_type=heads" | bash
```
**Docker (Linux만 실행 — Mac/Windows 사용자는 아래 안내를 참고하세요):**
```bash
curl -fsSL "https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-docker.sh?ref_type=heads" | bash
```
**ctop:**
```bash
@@ -71,6 +78,8 @@ powershell -ExecutionPolicy Bypass -c "$t=\"$env:TEMP\install-bottom.ps1\"; iwr
powershell -ExecutionPolicy Bypass -c "$t=\"$env:TEMP\install-lazygit.ps1\"; iwr -useb 'https://gl.isitsoft.kr/publicproj/install-sh/-/raw/main/install-lazygit.ps1' -OutFile $t; & $t"
```
**Docker:** [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/)를 설치하세요. 또는 WSL2에서 리눅스용 `install-docker.sh`를 실행하세요.
**ctop:**
```powershell
@@ -164,6 +173,27 @@ lazygit
| `P` `p` | Push / Pull |
| `?` | 도움말 |
### Docker
컨테이너 플랫폼입니다. `install-docker.sh`는 Linux에 Docker Engine을 자동 설치합니다.
- **컨테이너 실행/관리** — 애플리케이션을 격리된 환경에서 실행
- **Docker Compose** — 멀티 컨테이너 애플리케이션 오케스트레이션
- **BuildKit** — 빠른 이미지 빌드
```bash
docker run hello-world # 설치 확인
docker ps # 실행 중인 컨테이너 목록
docker compose up -d # Compose 서비스 시작
docker build -t <name> . # 이미지 빌드
```
> **macOS 사용자**: [Docker Desktop for Mac](https://www.docker.com/products/docker-desktop/) 또는 [OrbStack](https://orbstack.dev/)을 설치하세요.
>
> **Windows 사용자**: [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/) 또는 WSL2에서 리눅스용 스크립트를 실행하세요.
>
> `install-docker.sh`는 Linux 전용입니다. 설치 후 현재 사용자를 `docker` 그룹에 추가하며, 재로그인 후 `docker` 명령어를 sudo 없이 사용할 수 있습니다.
### ctop
Docker/Podman 컨테이너 모니터링 터미널 UI 도구입니다.
+185
View File
@@ -0,0 +1,185 @@
#!/usr/bin/env bash
# shellcheck disable=SC2086
# Installs Docker Engine on Linux, or shows instructions for macOS/Windows.
# Docker: https://www.docker.com/
# OrbStack (macOS alternative): https://orbstack.dev/
#
# Supported platforms:
# Linux (apt) : Ubuntu, Debian, and derivatives — Docker official apt repo
# Linux (dnf) : RHEL, Fedora, CentOS Stream, Rocky, Alma — Docker official dnf repo
# macOS : Not supported — shows instructions for OrbStack or Docker Desktop
# Windows : Not supported — use install-docker.ps1 or Docker Desktop
#
# Prerequisites:
# - Linux: curl, sudo
# - macOS/Windows: follow the printed instructions
set -euo pipefail
# ────────────────────────────────────────────
# Constants
# ────────────────────────────────────────────
DOCKER_GPG_URL="https://download.docker.com/linux/ubuntu/gpg"
DOCKER_APT_REPO_URL="https://download.docker.com/linux/ubuntu"
DOCKER_DNF_REPO_URL="https://download.docker.com/linux/rhel/docker-ce.repo"
# ────────────────────────────────────────────
# Utility functions (all stderr output)
# ────────────────────────────────────────────
info() { echo "[INFO] $*" >&2; }
warn() { echo "[WARN] $*" >&2; }
error() {
echo "[ERROR] $*" >&2
exit 1
}
success() { echo "[OK] $*" >&2; }
# ────────────────────────────────────────────
# Detect OS
# ────────────────────────────────────────────
OS="$(uname -s)"
case "$OS" in
Linux) ;;
Darwin)
info "macOS detected. Docker Engine is not installed via this script on macOS."
info ""
info "Please install one of the following:"
info ""
info " 1. OrbStack (recommended, lightweight):"
info " https://orbstack.dev/"
info ""
info " 2. Docker Desktop for Mac:"
info " https://www.docker.com/products/docker-desktop/"
info ""
exit 0
;;
*)
info "Unsupported OS: $OS. This script only supports Linux."
info ""
info "For Windows, install one of the following:"
info ""
info " 1. Docker Desktop for Windows:"
info " https://www.docker.com/products/docker-desktop/"
info ""
info " 2. WSL2 with Docker Engine:"
info " Install WSL2, then run this script inside a WSL2 Linux distro."
info ""
exit 0
;;
esac
ARCH="$(uname -m)"
info "Platform: $OS ($ARCH)"
# ────────────────────────────────────────────
# Check prerequisites
# ────────────────────────────────────────────
command -v curl &>/dev/null || error "'curl' is required. Install it first."
command -v sudo &>/dev/null || error "'sudo' is required."
# ────────────────────────────────────────────
# Step 1: Check if Docker is already installed
# ────────────────────────────────────────────
if command -v docker &>/dev/null; then
CURRENT_VER="$(docker --version 2>/dev/null || echo 'unknown')"
info "Docker is already installed ($CURRENT_VER). Skipping installation."
info "To reinstall or upgrade, uninstall first: sudo apt remove docker-ce docker-ce-cli containerd.io"
success "Docker is available: $(command -v docker)"
exit 0
fi
# ────────────────────────────────────────────
# Step 2: Install Docker Engine
# ────────────────────────────────────────────
info "Installing Docker Engine..."
if command -v apt-get &>/dev/null; then
# ── apt-based systems (Ubuntu, Debian, etc.) ──
info "Detected apt-based system. Using Docker official apt repository..."
# Add Docker's official GPG key
sudo apt-get update -y
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL "$DOCKER_GPG_URL" -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources
CODENAME="$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")"
ARCH_DEB="$(dpkg --print-architecture)"
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: ${DOCKER_APT_REPO_URL}
Suites: ${CODENAME}
Components: stable
Architectures: ${ARCH_DEB}
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt-get update -y
# Install Docker packages
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
success "Docker installed via apt"
elif command -v dnf &>/dev/null; then
# ── dnf-based systems (RHEL, Fedora, CentOS Stream, Rocky, Alma) ──
info "Detected dnf-based system. Using Docker official dnf repository..."
sudo dnf config-manager --add-repo "$DOCKER_DNF_REPO_URL"
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl --now enable docker
success "Docker installed via dnf"
else
error "No supported package manager found (apt-get or dnf). Install Docker manually: https://docs.docker.com/engine/install/"
fi
# ────────────────────────────────────────────
# Step 3: Add current user to docker group
# ────────────────────────────────────────────
info "Adding current user to the docker group..."
sudo usermod -aG docker "$(whoami)"
success "User '$(whoami)' added to the docker group"
info ""
info "NOTE: Group membership takes effect on next login."
info " To apply immediately in this session, run: newgrp docker"
info " Or log out and log back in."
# ────────────────────────────────────────────
# Step 4: Verify installation
# ────────────────────────────────────────────
if command -v docker &>/dev/null; then
DOCKER_VER="$(docker --version 2>/dev/null || echo 'unknown')"
success "Docker is available: $DOCKER_VER"
else
# May need a new shell for group changes
warn "Docker was installed but 'docker' command not found in current PATH."
warn "Please open a new terminal or run: newgrp docker"
fi
# ────────────────────────────────────────────
# Step 5: Post-install notes
# ────────────────────────────────────────────
info ""
info "=================================================="
success "Docker installation complete!"
info "=================================================="
info ""
info "Getting started:"
info " docker run hello-world - Verify installation"
info " docker ps - List running containers"
info " docker compose up -d - Start services with Compose"
info " docker build -t <name> . - Build an image"
info ""
info "Post-install steps (optional):"
info " https://docs.docker.com/engine/install/linux-post-install/"
info ""
info "Manage Docker as non-root:"
info " You have been added to the 'docker' group."
info " Log out and back in for this to take effect."
info ""
info "Container monitoring with ctop:"
info " Install ctop to monitor containers: install-ctop.sh"