Docker 是什么及如何安装:镜像、容器、启动与卸载
Docker 是用于构建、分发和运行容器化应用的平台,可将应用与依赖打包为镜像。本文说明核心概念,并给出使用 systemd 的 Linux 主机上的安装与检查方法。
Docker 技术简介
Docker 使用客户端与 daemon 通信来管理镜像、容器、网络和卷。Linux 容器与宿主机共享内核,通过命名空间、资源限制等机制隔离进程;容器仍可通过配置的网络和挂载交换数据。
容器与虚拟机的区别主要在隔离方式:虚拟机运行自己的客户机内核,容器通常复用宿主机内核。启动时间、体积和性能取决于应用与镜像,不能一概写成“只有几兆”或“完全没有接口”。
Docker 的应用场景
- Web 应用自动化打包和发布。
- 自动化测试与持续集成。
- 部署数据库或其他后台服务。
- 统一开发、测试和生产使用的应用依赖。
镜像可减少环境差异,但架构、内核能力、运行配置和外部数据仍会影响结果。
Docker 的组成
| 组件 | 用途 |
|---|---|
| 镜像 | 创建容器所用的分层模板,包含应用及其依赖 |
| 容器 | 从镜像创建的运行实例,带有自己的可写层和运行配置 |
| 客户端 | 通过 Docker API 与 daemon 通信,例如 docker 命令 |
| 主机 | 运行 daemon 与容器的物理机或虚拟机 |
| daemon | 管理镜像、容器、网络与卷的服务器进程 |
| 镜像仓库 | 保存与分发镜像,如 Docker Hub 或组织的私有仓库 |
安装 Docker
先确认发行版与架构:
sh
cat /etc/os-release
uname -m生产主机优先按对应发行版的官方仓库步骤安装:Debian、Ubuntu。支持版本、冲突包和软件源配置以对应文档为准,不要把其他发行版的命令直接混用。macOS / Windows 用户可从 Docker Desktop 开始。
对于开发或测试主机,官方提供 convenience script。先下载和检查,再执行:
sh
curl -fsSL https://get.docker.com -o get-docker.sh
less get-docker.sh
sudo sh get-docker.sh --dry-run确认脚本识别的系统、软件源和将要执行的操作符合预期后,才安装:
sh
sudo sh get-docker.sh该脚本会修改系统软件源并安装依赖,不建议在已有 Docker 的生产主机上用它执行升级。升级应沿用既有的包管理渠道。
启动并验证 Docker
sh
sudo systemctl enable --now docker
sudo systemctl status docker --no-pager
sudo docker version
sudo docker run --rm hello-worlddocker version 应能显示客户端和服务端信息;最后一项需要可拉取镜像。连接 daemon 失败、网络拉取失败与容器执行失败是不同问题,应按实际错误排查。
卸载 Docker
以下适用于通过 Docker 官方 APT 仓库安装的 Debian / Ubuntu 软件包,包括对应系统上的官方 convenience script 安装。先检查已安装的包:
sh
dpkg-query -W 'docker*' 'containerd*' 2>/dev/null确认来源后,卸载官方包:
sh
sudo apt remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras若某个可选包未安装,按本机包清单调整。发行版提供的 docker.io、Snap 或 Docker Desktop 需按各自渠道卸载。
卸载软件不会自动清除 /var/lib/docker、/var/lib/containerd 或自行挂载的数据。需要重新安装或保留应用数据时保留这些目录;只有完成备份并确认无需恢复后,才单独规划数据删除。