本文最后更新于:2023年12月5日 晚上
安装和删除方法
官方文档:https://docs.docker.com/engine/install/
ubuntu:https://docs.docker.com/engine/install/ubuntu/
centos:https://docs.docker.com/install/linux/docker-ce/centos/
阿里云文档:https://developer.aliyun.com/mirror/docker-ce
二进制安装:https://docs.docker.com/install/linux/docker-ce/binaries/
https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/
配置文件
docker-ce 配置文件:
docker registry 配置文件:
docker 命令帮助
https://docs.docker.com/reference/
新版 docker 命令采用结构化格式,虽然老版命令依旧可以使用,但是还是推荐结构化的使用命令,更加规范有效的使用。
docker 相关信息
解决上述 SWAP 报警提示:
docker0 网卡
在 docker 安装启动之后,默认会生成一个名称为 docker0 的网卡,默认 IP 地址为 172.17.0.1 的网卡
docker 存储引擎
docker 官方推荐首选存储引擎为 overlay2,需要磁盘分区支持 d-type 功能
docker 服务进程
docker 相关的四个进程:
- dockerd:服务端程序,被 client 直接访问,父进程为宿主机的 systemd 守护进程
- docker-proxy:每个进程 docker-proxy 实现对应一个需要网络通信的容器,管理宿主机和容器的之间端口映射,其父进程为 dockerd,如果容器不需要网络则无需启动
- containerd:被 dockerd 进程调用以实现与 runc 交互
- containerd-shim:真正运行容器的载体,每个容器对应一个 containerd-shim 进程,其父进程为 containerd
containerd-shim 命令
容器的创建与管理过程
- dockerd 通过 grpc 和 containerd 模块通信,由 libcontainerd 负责,通信的 socket:/run/containerd/containerd.sock
- containerd 在 dockerd 启动时被启动,然后 containerd 启动 grpc 请求监听,containerd 处理请求,根据请求作出相应动作
- run/start/exec 容器,containerd 拉起一个 container-shim,并进行相应的操作
- container-shim 被拉起后,start/exec/create 拉起 runc 进程,通过 exit、control 文件和 containerd 通信,通过父子进程关系和 sigchld 监控容器中进程状态
- 在整个容器生命周期中,container 通过 epoll 监控容器文件、事件
gRPC
gPRC 是谷歌开发的一款高性能、开源和通用的 RPC 框架,支持众多语言客户端
docker 服务管理
docker 服务基于 C/S 架构,可以实现基于本地和远程方式进行管理
范例:docker 服务添加标签