docker
docker
docker镜像站[1] 维护性非常好,点赞!
docker安装
1 |
|
tar -zxvf 文件名.tar.gz 解压文件
docker info爆错
ERROR: permission denied while trying to connect to the Docker daemon socket at
将当前用户加入 docker 用户组:sudo usermod -aG docker $USER
刷新用户组(部分系统有效): newgrp docker
Docker search超时
Docker 的三个核心抽象层级详解
1. Images(镜像) - 构建层
定义:只读的模板,包含创建容器所需的全部文件和配置,类似面向对象编程中的”类”概念
关键特性:
- 由 Dockerfile 构建而成
- 内容不可变(immutable)
常用命令
1 |
|
最简单的 Dockerfile 构建与容器化流程
1 |
|
在文件目录执行docker build -t imageName . 构建镜像
2. Containers(容器) - 运行层
定义:
- 镜像的可运行实例
- 类似面向对象编程中的”对象”实例
关键特性:
- 基于镜像创建,但包含可写层
- 具有独立的运行环境
- 生命周期可管理(启动/停止/删除)
- 资源隔离(进程、网络、文件系统等)
示例操作:
1 |
|
3. 第三抽象层级的两种理解视角
视角一:Volumes(卷) - 持久化层
定义:
- 用于数据持久化的存储机制
- 独立于容器的生命周期
关键特性:
- 解决容器内数据易失性问题
- 支持主机目录挂载或命名卷
- 可在容器间共享
示例操作:
1 |
|
视角二:Networks(网络) - 连接层
定义:
- 容器间的通信基础设施
- 提供网络隔离和连接策略
关键特性:
- 多种驱动类型(bridge、host、overlay等)
- 支持自定义网络配置
- 控制容器间的可见性和连接方式
示例操作:
1 |
|
三层级关系图解
1 |
|
case:悬空镜像
悬空镜像是Docker中一个重要的概念,理解它有助于更好地管理Docker存储空间。下面我将全面解释悬空镜像的定义、成因及管理方法。
悬空镜像是指:
- 没有标签(untagged)的镜像
- 不被任何容器引用的中间层镜像
- 在
docker images
列表中显示为<none>:<none>
的镜像
产生原因:
- 重新构建镜像时:当您构建新版本的镜像并使用相同标签时,旧镜像会变成悬空镜像,
例如:重复执行docker build -t my-app .
- 删除标签时:使用
docker rmi
删除镜像标签但不删除所有引用时 - 多阶段构建时:构建过程中产生的中间层镜像
docker命令
compose
使用compose.yml文件进行编译
1 |
|
docker常用基础镜像
traefik[2]
“traefik.enable=true”
作用:显式启用 Traefik 对该服务的路由功能
在 proxy 服务中设置了 –providers.docker.exposedbydefault=false,这意味着 Traefik 默认不会路由任何服务
“traefik.http.routers.backend.rule=PathPrefix(/api)”
作用:定义路由规则,指定哪些请求应该被路由到这个服务
backend
是这个路由器的自定义名称,可以改为其他有意义的名字。
backend 服务
1 |
|
资源链接-docker
[1] Docker/DockerHub 国内镜像源/加速列表 3月28日更新-长期维护
[2] Traefik v3.0 Docker 全面使用指南:基础篇-腾讯云开发者社区-腾讯云
docker
http://example.com/post/docker-zeg79c.html