如果你在使用 Ubuntu 18.04/20.04 LTS 版本的 Ubuntu 系统,会发现系统里面多了一个应用格式包—— .snap 包。 Snap 包是 Ubuntu 16.04 LTS 发布时引入的新应用格式包。目前已流行在 Ubuntu 且在其他如 Debian、Arch Linux、Fedora、Kaili Linux、openSUSE、Red Hat 等 Linux 发行版上通过 snapd 来安装使用 snap 应用。
snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。
下图就是 snap 下 docker 的文件夹内容。
Ubuntu Docker安装,使用 snap 安装 docker ,是 Ubuntu 命令行的建议。笔者体验后,觉得 比Docker官网的安装简单
检查snap软件库中docker可用版本
ubuntu@VM-0-5-ubuntu:~$ sudo snap info docker
name: docker
summary: Docker container runtime
publisher: Canonical✓
store-url: https://snapcraft.io/docker
license: Apache-2.0 AND GPL-2.0 AND MIT
description: |
Build and run container images with Docker.
**Usage**
* This build can only access files in the home directory. So Dockerfiles and all other files used
in commands like `docker build`, `docker save` and `docker load` need to be in $HOME.
* You can change the configuration of this build by modifying the files in
`/var/snap/docker/current/`.
* Additional certificates used by the Docker daemon to authenticate with registries need to be
added in `/var/snap/docker/current/etc/docker/certs.d` (instead of `/etc/docker/certs.d`). This
directory can be accessed by other snaps using the `docker-registry-certificates` content
interface.
**Running Docker as normal user**
By default, Docker is only accessible with root privileges (`sudo`). If you want to use docker as
a regular user, you need to add your user to the `docker` group.
sudo addgroup --system docker
sudo adduser $USER docker
newgrp docker
sudo snap disable docker
sudo snap enable docker
**Warning:** if you add your user to the `docker` group, it will have similar power as the `root`
user. For details on how this impacts security in your system, see
https://docs.docker.com/engine/security/#docker-daemon-attack-surface
**Authors**
This snap is built by Canonical based on source code published by Docker, Inc. It is not endorsed
or published by Docker, Inc.
Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United
States and/or other countries. Docker, Inc. and other parties may also have trademark rights in
other terms used herein.
snap-id: sLCsFAO8PKM5Z0fAKNszUOX0YASjQfeZ
channels:
latest/stable: 27.2.0 2025-01-30 (2976) 146MB -
latest/candidate: 27.5.1 2025-02-17 (3064) 151MB -
latest/beta: 27.5.1 2025-01-30 (3064) 151MB -
latest/edge: 28.0.0 2025-02-27 (3123) 145MB -
core18/stable: 20.10.17 2023-03-13 (2746) 146MB -
core18/candidate: ↑
core18/beta: ↑
core18/edge: ↑
我们可以看到,snap 仓库中的 docker 是由开源公司 Canonical 基于 Docker 发布的源码构建的, channel中 docker 最新版有四个发行渠道,stable 中为27.2.0,其他三个渠道为 27.5.1。
安装 candidate 的docker。
sudo snap install docker --candidate
或者直接安装稳定版
sudo snap install docker
安装完成后查看docker信息
sudo docker version
sudo docker-compose version
snap安装的docker管理方式与普通的服务不同,具体参考下方
启动 Docker 服务
sudo snap start docker
或
sudo systemctl start snap.docker.dockerd
停止 Docker 服务
sudo snap stop docker
或
sudo systemctl stop snap.docker.dockerd
重启 Docker 服务
sudo snap restart docker
或
sudo systemctl restart snap.docker.dockerd
查看 Docker 服务状态
sudo systemctl status snap.docker.dockerd
● snap.docker.dockerd.service - Service for snap application docker.dockerd
Loaded: loaded (/etc/systemd/system/snap.docker.dockerd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2025-03-11 14:06:34 CST; 5s ago
Main PID: 16608 (dockerd)
Tasks: 16 (limit: 3942)
Memory: 100.2M
CPU: 2.049s
CGroup: /system.slice/snap.docker.dockerd.service
├─16608 dockerd --group docker --exec-root=/run/snap.docker --data-root=/var/snap/docker/common/var-lib-docker --pidfile=/run/snap.docker/docker.pid --config-file=/var/snap/docker/3064/config/daemon.json
└─16663 containerd --config /run/snap.docker/containerd/containerd.toml --log-level error
snap安装的docker更新docker
sudo snap refresh docker
完成更新后,您可以再次运行以下命令来验证 Docker 的版本
sudo docker --version
snap安装的的docker,卸载docker
sudo systemctl stop snap.docker.dockerd
运行以下命令以卸载 Docker
sudo snap remove docker
如果您还希望删除 Docker 遗留的数据和配置文件,可以运行以下命令
sudo rm -rf ~/docker
关联:
http://blog.xqlee.com/article/2502281142549466.html