1.docker是什么
官方介绍: https://docs.docker.com/get-started/docker-overview/
当我们通过手动安装docker的时候步骤如下:
1. 更新包索引并安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
2. 添加 Docker 官方 GPG 密钥
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
sudo chmod a+r /etc/apt/keyrings/docker.gpg
3. 设置 Docker 仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5. 验证安装
sudo docker run hello-world
6. 注意: Docker Compose 作为插件 (docker-compose-plugin) 包含在内,不需要再次单独安装.
历史背景:
旧版本(V1):
需要单独安装 docker-compose(Python 编写)
使用命令:docker-compose up(带横杠)
独立的二进制文件
新版本(V2,现在推荐):
作为 Docker CLI 插件集成
使用命令:docker compose up(空格,无横杠)
用 Go 重写,性能更好
2.通过 docker pull/run ... 命令来理解 Docker daemon 和 Docker client 之间的关系:
当您执行 docker pull/run ... 时:
直接使用的是:Docker Client (CLI)
- 就是
docker这个命令行工具 - 对应安装包:
docker-ce-cli
实际工作的是:Docker Daemon
- 后台运行的服务进程
dockerd - 对应安装包:
docker-ce(Docker Engine)
工作流程:
您输入命令
↓
Docker Client (docker-ce-cli)
↓
通过 REST API 或 Socket 通信
↓
Docker Daemon (dockerd, 即 docker-ce)
↓
调用 containerd 实际执行容器操作
安装包解释:
sudo apt-get install \
docker-ce # Docker Engine (daemon/服务端)
docker-ce-cli # Docker Client (命令行工具/客户端)
containerd.io # 容器运行时
docker-buildx-plugin # 构建插件
docker-compose-plugin # Compose 插件
验证:
# 查看 Docker Client 版本
docker version | grep "Client:"
# 查看 Docker Daemon (Engine) 版本
docker version | grep "Server:"
# 查看 daemon 进程
ps aux | grep dockerd
所以简单说:
- 敲命令 = 使用 Docker Client
- 实际干活 = Docker Daemon 在后台执行
它们是 客户端-服务器架构,通常装在同一台机器上,通过 Unix socket (/var/run/docker.sock) 通信。
可以通过如下命令检查dockerd运行状态
$ ps aux | grep dockerd
root 2073 0.3 0.2 4947848 97124 ? Ssl 09:00 0:19 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 22625 0.0 0.0 12308 2816 pts/4 S+ 10:44 0:00 grep --color=auto dockerd
3.目前docker使用主要有两种
- docker engine
- https://docs.docker.com/engine/install/ubuntu/
- docker desktop
- https://docs.docker.com/desktop/setup/install/linux/ubuntu/
