docker:基本架构

docker是典型的CS架构,包括客户端和服务端两大核心组件,同时通过镜像仓库来存储镜像。客户端和服务器既可以运行在同一个机器上,也可以通过socket或者RESTful API来进行通信

服务端

docker的服务端一般在宿主主机后台运行,dockerd作为服务端接收来自客户的请求,并通过container具体处理与容器相关的请求,包括创建、运行、删除容器等。

服务端主要包括四个组件:

  • dockerd:为客户端提供RESTful API,响应来自客户端的请求,采用模块化的架构,通过专门的engine模块来分发管理各个来自客户端的任务。
  • docker-proxy:是dockerd的子进程,当需要进行容器端口映射时,docker-proxy完成网络映射配置
  • containered:是dockerd的子进程,提供gRPC接口响应来自dockerd的请求,对下管理runC镜像和容器环境
  • containered-shim:是containerd的子进程,为runC容器提供支持,同时作为容器内进程的根进程

在这里插入图片描述
dockerd默认监听本地的unix:///var/run/docker.socker套接字,只允许本地的root用户或者docker用户组成员访问。可以通过-H选项来修改监听的方式。比如,让docker监听本地的TCP连接1234端口:

dockerd -H 127.0.0.1:1234

docker-proxy只有当启动容器并且使用端口映射时候才会执行,负责配置容器的端口映射规则

  • 可以通过如下进行端口映射
docker run -itd -p 80:80 ubuntu:latest /bin/sh
  • 可以通过如下查看端口映射到了哪里
ps -ef | grep docker

在这里插入图片描述

客户端

用户使用的docker可执行命令即为客户端程序。客户端发送命令后,需要等待服务端返回;一旦收到返回后,客户端立即执行结束并退出。

客户端默认通过本地的unix:///var/run/docker.socker与服务端通信,如果服务端没有监听在默认地址,客户端必须通过-H参数指定了正确的地址才能连接到服务端:

docker -H tcp://127.0.0.1:1234 info

镜像仓库

镜像是使用容器的基础,docker使用镜像仓库存储和分发docker镜像。

用户可以从镜像仓库拉取镜像、也可以上传镜像到仓库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值