【原创】自用docker相关安装脚本分享

自用docker相关安装脚本分享

以下两个文件为自用的docker初始安装脚本以及相关配置,还有nvidia-container-toolkit的安装脚本。请在使用之前了解此脚本的用途,您可参考并自由修改。

创建时间2025年12月3日

install_docker_ubuntu22.sh

#!/bin/bash

set -e  # 遇到错误立即退出(但我们会在关键步骤捕获错误)

echo ">>> 尝试配置 Docker 官方源..."

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings

# === 尝试官方源 ===
if sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc; then
    sudo sudo chmod a+r /etc/apt/keyrings/docker.asc
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
        sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    if sudo apt-get update; then
        echo "✅ Docker 官方源配置成功!"
    else
        echo "⚠️ apt update 失败,回退到阿里源..."
        sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.asc
        fallback_to_aliyun=true
    fi
else
    echo "⚠️ 下载官方 GPG key 失败,回退到阿里源..."
    sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.asc
    fallback_to_aliyun=true
fi

# === 回退到阿里云源 ===
if [ "${fallback_to_aliyun:-false}" = true ]; then
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | \
        sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    echo "✅ 已切换到阿里云 Docker 源!"
fi


# === 安装 Docker ===
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin



# === 用户权限 ===
# Add current user to the 'docker' group, which allows them to use docker commands (docker build, docker run, etc).
# See https://docs.docker.com/engine/install/linux-postinstall/
username=$(whoami)
sudo usermod -aG docker $username


# === 开机自启 ===
# Configure docker to start automatically on system boot.
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

# === 修复 WSL2 config.json ===
# https://forums.docker.com/t/docker-credential-desktop-exe-executable-file-not-found-in-path-using-wsl2/100225/5
if [ -f ~/.docker/config.json ]; then
	sed -i 's/credsStore/credStore/g' ~/.docker/config.json
fi

# === mirrors可修改成您自己的可用版本 ===
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
    "registry-mirrors": [
        "https://docker.1panel.live",
        "https://docker.1ms.run",
        "https://dytt.online",
        "https://docker-0.unsee.tech",
        "https://lispy.org",
        "https://docker.xiaogenban1993.com",
        "https://666860.xyz",
        "https://hub.rat.dev",
        "https://docker.m.daocloud.io",
        "https://demo.52013120.xyz",
        "https://proxy.vvvv.ee",
        "https://registry.cyou",
        "https://mirror.ccs.tencentyun.com"
    ],
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    }
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

echo ""
echo "********************************************************************"
echo "**** 重启以令docker权限修改生效 ****"
echo "********************************************************************"
echo ""

install_nvidia_container_toolkit.sh

#!/bin/bash

# Installs the NVIDIA Container Toolkit, which allows Docker containers to access NVIDIA GPUs.
# NVIDIA's official documentation: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg &&
	curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list |
	sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' |
		sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# NVIDIA's documenation omits 'sudo' in the following command, but it is required.
sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart containerd
sudo systemctl restart docker
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值