Skip to content

Instantly share code, notes, and snippets.

@hataiit9x
Created April 15, 2025 16:12
Show Gist options
  • Save hataiit9x/eb83c84799ddcb3d92d6189407649c8d to your computer and use it in GitHub Desktop.
Save hataiit9x/eb83c84799ddcb3d92d6189407649c8d to your computer and use it in GitHub Desktop.
docker.sh
#!/bin/bash
set -e
echo "🚮 Gỡ Docker và containerd cũ nếu có..."
sudo systemctl stop docker || true
sudo apt remove -y docker docker.io docker-engine containerd containerd.io runc || true
sudo apt purge -y docker docker.io docker-engine containerd containerd.io runc || true
sudo apt autoremove -y || true
echo "🔧 Bỏ mask Docker nếu có..."
sudo systemctl unmask docker.service || true
sudo systemctl unmask docker.socket || true
echo "📦 Cài Docker chính chủ..."
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo "📂 Tạo thư mục /home/docker-data nếu chưa có..."
sudo mkdir -p /home/docker-data
sudo chown -R root:root /home/docker-data
echo "🛠️ Cấu hình Docker sử dụng /home/docker-data"
sudo mkdir -p /etc/docker
echo '{
"data-root": "/home/docker-data"
}' | sudo tee /etc/docker/daemon.json
echo "⚙️ Override Docker service để tránh lỗi socket activation..."
sudo mkdir -p /etc/systemd/system/docker.service.d
cat <<EOF | sudo tee /etc/systemd/system/docker.service.d/override.conf > /dev/null
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=unix:///var/run/docker.sock --containerd=/run/containerd/containerd.sock
EOF
echo "🔄 Reload & khởi động Docker..."
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl disable docker.socket || true
sudo systemctl enable docker.service
sudo systemctl restart docker.service
echo "✅ Docker đã sẵn sàng:"
docker info | grep "Docker Root Dir"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment