007、Docker 架构详解(2018-12-24 周一)
Docker核心组件包括:
Docker 客户端 Docker Client
Docker 服务器 Docker daemon
Dokcer 镜像 Docker image
Dokcer 容器 Docker Container
Registry
Docker架构图如下:
Docker 采用的是C/S架构。客户端向服务器发送请求,服务器负载构建、运行和分发容器。客户端和服务器可以运行在同一个Host上,也可以运行在不同的Host上,通过socket或者REST API 与远程服务器通信。
Docker 客户端
最长用的Docker客户端是docker命令
Docker 服务器
Docker daemon 是服务器组件,以后台服务的方式运行。负责创建、运行、监控容器,构建、存储镜像。
默认配置下Docker daemon只能响应来自本机Docker客户端的请求,如需接受远程请求,需求修改配置文件
/etc/systemd/system/multi-user.target.wants/docker.service 中 ExecStart 行尾添加 ‘ -H tcp://0.0.0.0’,然后重启Docker服务
使用 docker -H 127.0.0.1 info 确认可以接受远程指令,这里用127.0.0.1代替
Docker 镜像
可以将Docker镜像看做只读模板,以它为模板来创建Docker容器。
镜像来源:自己创建、下载现有镜像、修改现有镜像
Dockerfile 我们可以镜像的内容和创建步骤描述在一个文本文件中,这个文件称作Dockerfile,通过命令 docker build <docker-file> 可以构建Docker镜像
Docker 容器
Docker容器就是Docker镜像运行的实例。对于应用软件的生命周期,镜像是软件创建和打包阶段,容器是启动和运行阶段。
Registry
Registry 是存放 Docker 镜像的仓库,分为私有和公有两种。
Docker Hub (https://hub.docker.com/) 是默认的 Registry,由Docker公司维护。
用户可以创建私有的Registry,访问速度快,而且安全。