Update scripts/fix_docker.sh

This commit is contained in:
2025-07-31 17:12:35 +00:00
parent 5052e0da70
commit 5a8aa4bb73
+24 -24
View File
@@ -3,20 +3,20 @@ set -e
# Ensure script is run as root
if [[ $EUID -ne 0 ]]; then
echo "This script must be run with sudo or as root."
exit 1
echo "This script must be run with sudo or as root."
exit 1
fi
# 1) Remove any old Docker and Docker Compose packages
echo "Removing old Docker packages..."
set +e
apt-get remove -y \
docker docker-engine docker.io docker-ce docker-ce-cli \
containerd runc \
docker-compose
docker docker-engine docker.io docker-ce docker-ce-cli \
containerd runc \
docker-compose
set -e
# Note: The above command may fail if Docker is not installed, which is fine.
# The script will continue to install the latest version.
# The script will continue to install the latest version.
# 2) Update package index
echo "Updating APT package index..."
@@ -25,31 +25,31 @@ apt-get update -y
# 3) Install prerequisite packages
echo "Installing prerequisites..."
apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
ca-certificates \
curl \
gnupg \
lsb-release
# 4) Add Dockers official GPG key
echo "Adding Dockers GPG key..."
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
# ubuntu or debian?
KIND=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
if [[ "$KIND" != "ubuntu" && "$KIND" != "debian" ]]; then
echo "This script is intended for Ubuntu or Debian systems only."
exit 1
echo "This script is intended for Ubuntu or Debian systems only."
exit 1
fi
# 5) Set up the Docker APT repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/$KIND \
$(lsb_release -cs) stable" \
| tee /etc/apt/sources.list.d/docker.list > /dev/null
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/$KIND \
$(lsb_release -cs) stable" \
| tee /etc/apt/sources.list.d/docker.list > /dev/null
# 6) Update the package index again
echo "Updating APT package index with Docker repo..."
@@ -58,18 +58,18 @@ apt-get update -y
# 7) Install the latest Docker Engine, CLI, containerd, and Compose plugin
echo "Installing Docker Engine, CLI, containerd, and Docker Compose plugin..."
apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin
# 8) (Optional) Install legacy docker-compose binary
# Uncomment below if you still need the standalone 'docker-compose' command
# echo "Installing legacy docker-compose binary..."
# COMPOSE_LATEST=$(curl -s https://api.github.com/repos/docker/compose/releases/latest \
# | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_LATEST}/docker-compose-$(uname -s)-$(uname -m)" \
# -o /usr/local/bin/docker-compose
# -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# 9) Add current user to the 'docker' group (so you can run docker without sudo)
@@ -87,4 +87,4 @@ echo "Verifying Docker installation..."
docker --version
docker compose version || echo "Docker Compose plugin installed; use 'docker compose'."
echo "Done! Please log out and back in (or reboot) for group changes to take effect."
echo "Done! Please log out and back in (or reboot) for group changes to take effect."