1) 완전 초기 설치 스크립트 — install_docker_fresh.sh (Mint 자동 감지 → Ubuntu 코드네임 매핑 포함, sudo 없이 사용 가능 설정)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| #!/bin/bash
set -euo pipefail
echo "[i] Docker & Compose fresh installer (Mint/Ubuntu auto-detect)"
# --- Map Mint to Ubuntu codename ---
get_ubuntu_codename() {
local code=""
if grep -q '^UBUNTU_CODENAME=' /etc/os-release; then
code="$(. /etc/os-release && echo "${UBUNTU_CODENAME:-}")"
fi
if [[ -z "$code" ]] && grep -q '^ID=linuxmint' /etc/os-release; then
. /etc/os-release
case "${VERSION_ID%%.*}" in
22) code="noble" ;; # Mint 22.x -> Ubuntu 24.04
21) code="jammy" ;; # Mint 21.x -> Ubuntu 22.04
20) code="focal" ;; # Mint 20.x -> Ubuntu 20.04
19) code="bionic" ;; # Mint 19.x -> Ubuntu 18.04
*) code="noble" ;; # default
esac
fi
if [[ -z "$code" ]] && command -v lsb_release >/dev/null 2>&1; then
local raw="$(lsb_release -cs || true)"
case "$raw" in
xia) code="noble" ;; # Mint 22 prints xia
uma|una|elsie|vera|victoria) code="jammy" ;; # old Mint names -> jammy (best-effort)
*) code="$raw" ;;
esac
fi
[[ -z "$code" ]] && code="noble"
echo "$code"
}
UBU_CODE="$(get_ubuntu_codename)"
echo "[i] Using Ubuntu codename: ${UBU_CODE}"
echo "[1/7] Pre-clean old docker entries..."
sudo systemctl stop docker.service docker.socket containerd.service 2>/dev/null || true
sudo rm -f /etc/apt/sources.list.d/docker.list
sudo rm -f /etc/apt/keyrings/docker.gpg
echo "[2/7] Base dependencies..."
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
echo "[3/7] Docker GPG key..."
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "[4/7] Add Docker repo for ${UBU_CODE}..."
ARCH="$(dpkg --print-architecture)"
echo "deb [arch=${ARCH} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu ${UBU_CODE} stable" \
| sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
echo "[5/7] Install Docker Engine & Compose..."
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo "[6/7] Add current user to 'docker' group..."
if ! getent group docker >/dev/null; then
sudo groupadd docker
fi
sudo usermod -aG docker "$USER"
echo "[7/7] Versions:"
docker --version || true
docker compose version || true
echo ""
echo "✅ Install done."
echo "➡ Apply group without relogin: newgrp docker"
|
1
2
3
4
5
6
7
| nano install_docker_fresh.sh
# 위 내용 붙여넣기
chmod +x install_docker_fresh.sh
./install_docker_fresh.sh
# 바로 sudo 없이 쓰려면:
newgrp docker
|
2) 완전 제거 스크립트 — uninstall_docker_fullwipe.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| #!/bin/bash
set -euo pipefail
echo "[*] Stopping Docker services..."
sudo systemctl stop docker.service docker.socket containerd.service || true
echo "[*] Remove all containers/images/volumes/networks (if docker still works)..."
if command -v docker >/dev/null 2>&1; then
docker ps -aq | xargs -r docker rm -f || true
docker images -aq | xargs -r docker rmi -f || true
docker volume ls -q | xargs -r docker volume rm -f || true
docker network ls -q | grep -vE '(^| )bridge($| )|(^| )host($| )|(^| )none($| )' | xargs -r docker network rm || true
fi
echo "[*] Purging Docker packages..."
sudo apt purge -y docker-ce docker-ce-cli docker.io containerd runc docker-buildx-plugin docker-compose-plugin || true
sudo apt autoremove -y --purge
echo "[*] Removing data directories..."
sudo rm -rf /var/lib/docker /var/lib/containerd /var/run/docker.sock
sudo rm -rf /etc/docker
echo "[*] Removing repo/keyring/list files..."
sudo rm -f /etc/apt/sources.list.d/docker.list
sudo rm -f /etc/apt/keyrings/docker.gpg
echo "[*] Removing group 'docker' (keeps users intact)..."
sudo groupdel docker 2>/dev/null || true
echo "[*] Clean apt caches..."
sudo apt update
echo "✅ Docker FULL wipe finished."
|
1
2
3
4
5
| nano uninstall_docker_fullwipe.sh
# 위 내용 붙여넣기
chmod +x uninstall_docker_fullwipe.sh
./uninstall_docker_fullwipe.sh
|