指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

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/