ubutnu 安装服务snap和apt 到底有什么区别

下面给你一份「一句话 + 对照表 + 实操建议」,把 Ubuntu 上用 snap 安装 和 用 apt 安装 的差异讲清楚,顺带对应你刚才遇到的 Docker 服务名/配置路径坑点。

TL;DR
• apt(.deb):跟系统深度融合,标准路径 /etc/、systemd 服务名常规、可精细控制升级;更适合服务器/生产环境。
• snap:独立打包+沙箱(AppArmor/seccomp),自带依赖、自动更新、跨发行版跑;更适合桌面/快速试用或需要回滚/多通道的场景。


在这里插入图片描述

为什么你会遇到 Unit docker.service not found

apt 版 Docker(docker-ce) 服务名是 docker.service,配置在 /etc/docker/daemon.json,重启:systemctl restart docker。
	•	snap 版 Docker 服务名是 snap.docker.dockerd.service,读取的是 /var/snap/docker/current/config/daemon.json,重启:snap restart docker 或 systemctl restart snap.docker.dockerd.service。
你在 /etc/docker/daemon.json 改了配置,再去 systemctl restart docker,如果机器上没有 apt 版 Docker,自然就报 “Unit docker.service not found”。

生产环境怎么选?
• 服务器/生产(尤其要和 systemd、K8s、NVIDIA Toolkit、企业代理、审计/监控深度整合):优先 apt(官方 Docker CE 仓库)。路径、服务名、日志都更可预期,部署脚本也更通用。
• 桌面/快速试新版本/要回滚:snap 更省心(自动更新 + revert + 通道)。

实操速查(以 Docker 为例)

判断当前是哪种安装:

which docker && docker --version
systemctl list-unit-files | grep -i docker
snap list | grep -i docker
dpkg -l | grep -E ‘docker|containerd’ | grep -v ‘^rc’

如果是 snap 版,配置与重启:

sudo mkdir -p /var/snap/docker/current/config
sudo tee /var/snap/docker/current/config/daemon.json >/dev/null <<'EOF'
{ "registry-mirrors": ["https://docker.m.daocloud.io","https://mirror.baidubce.com"] }
EOF
sudo snap restart docker           # 或 systemctl restart snap.docker.dockerd.service

如果改用 apt 官方 Docker CE:

清掉冲突包(包括 snap 版)

sudo snap remove docker || true
sudo apt-get remove -y docker.io docker-doc podman-docker containerd runc || true

安装 Docker CE(官方仓库)

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
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
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置镜像源 + 重启

sudo mkdir -p /etc/docker
echo '{ "registry-mirrors": ["https://docker.m.daocloud.io","https://mirror.baidubce.com"] }' \
| sudo tee /etc/docker/daemon.json >/dev/null
sudo systemctl enable --now docker
sudo systemctl restart docker

GPU 机器记得再装 nvidia-container-toolkit 并 nvidia-ctk runtime configure --runtime=docker,然后重启 docker。

快速选择建议(给你做 RAG 与 reranker 的场景)
• 线上推理服务(TEI、FastAPI 网关、Prometheus 监控):用 apt 安装的 Docker/Containerd 更省坑(路径与服务名统一、Ansible/K8s 友好)。
• 开发机/临时演示:若图省事可用 snap,但注意配置文件路径与自动更新窗口,避免演示中途 refresh。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值