docker 설치 추가
This commit is contained in:
1 parent
0fe2ad11d5
commit
cf4863c575
2 files changed
+215
No files matched your search
@@ -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 도구입니다.
|
||||
|
||||
Executable
+185
@@ -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"
|
||||
Reference in new issue
Block a user