--昨夜西风凋碧树,独上高楼,望尽天涯路
-
Docker架构
Docker的核心组件包括:
1.Docker客户端:Client
2.Docker服务器:Docker daemon
3.Docker镜像:Image
4.Registry
5.Docker容器:Container
Docker架构图如下:
Docker采用Client/Server架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务端可以运行 在同一个Host上,客户端也可以通过socket或REST API与远程服务器通信。
-
Docker客户端
常用的docker客户端是docker命令。通过docker命令我们可以方便的在host上构建和运行容器(也可以使用REST API与服务器通信)
-
Docker服务端
Docker daemon是服务器组件,以linux后台服务的方式运行,查看运行状态:
Docker daemon运行在Docker host上,负责创建、运行、监控容器,构建、存储镜像。默认配置下,Docker daemon只能相应来自本地Host的客户端请求。如果允许远程客户端请求,需要在配置文件中打开TCP监听:
进入到/etc/systemd/system/multi-user.target.wants/docker.service, 编辑配置文件docker.service,在环境变量ExecStart后面添加 -H tcp://0.0.0.0,允许来自任意IP的客户端连接:
重启Docker dameon:
通过-H加服务器ip地址可与远程服务器通信(info用于查看Docker服务器的信息):
-
Docker镜像
Docker镜像可以看作是只读模板,通过镜像来创建Docker容器。
镜像的生成方法有很多种:
1.从零开始直接创建一个镜像
2.下载创建好的镜像
3.在现有镜像的基础上创建镜像
-
Docker容器
Docker容器是Docker镜像运行的实例。
用户可以通过CLI(Docker)或者API启动、停止、移动或者删除容器(对于应用软件,镜像是软件生命周期的构建和打包阶段,容器则是启动和运行阶段)。
-
Registry
Registry是存放Docker镜像的仓库,Registry分为私有和公有两种。
Docker Hub是默认的Registry,由Docker公司维护,上面存放数以万计的镜像,用户可以自由下载和使用
出于安全用户也可以构建自己的私有仓库
-
例
运行一个httpd容器:
docker run表示运行一个容器,-d参数表示后台运行, -p参数表示映射容器的80端口到主机的80端口,httpd是镜像名称
如果镜像在本地不存在,如果镜像在本地不存在,Docker daemon会先从Docker Hub下在镜像,再运行(也可以先docker pull 镜像 再通过docker run运行镜像)
docker images查看镜像已经下载到本地:
docker ps或者docker container ls显示正在运行的容器: