每天学一点Docker(5)——了解Docker架构
Docker的核心组件:
1.Docker客户端 - Client
2.Docker服务器 - Docker deamon
3.Docker镜像 - Image
4.仓库 - Registry
5.Docker容器 - Container
Docker架构图如下:
Docker采用的是C/S架构,客户端向服务器发送请求,服务器负责创建、运行和分发容器。
Docker客户端:
Docker客户端的命令如下:
Docker服务器:
Docker deamon是服务器组件,以Linux后台服务方式运行。
Docker daemon 运行在 Docker host 上,负责创建、运行、监控容器,构建、存储镜像。
默认配置下,Docker daemon 只能响应来自本地 Host 的客户端请求。如果要允许远程客户端请求,需要在配置文件中打开 TCP 监听,步骤如下:
1.编辑配置文件 /etc/systemd/system/multi-user.target.wants/docker.service,在环境变量 -H tcp://0.0.0.0
,允许来自任意 IP 的客户端连接。
2.重启 Docker daemon。
3.服务器 IP 为 192.168.56.102,客户端在命令行里加上 -H 参数,即可与远程服务器通信
Docker镜像 :
可将Docker镜像看成一个只读模板。一个镜像里可能含有一个系统,或者一个Tomcat。
镜像有多种生成方法:
- 可以从无到有开始创建镜像
- 也可以下载并使用别人创建好的现成的镜像
- 还可以在现有镜像上创建新的镜像
我们可以将镜像的内容和创建步骤描述在一个文本文件中,这个文件被称作 Dockerfile,通过执行 docker build <docker-file>
命令可以构建出 Docker 镜像。
Docker容器:
Docker容器就是Docker运行的环境。对于软件而言,镜像像是生命周期的构建和打包阶段,容器则是启动和运行阶段。
Docker仓库Registry:
镜像有多种生成方法:
- 可以从无到有开始创建镜像
- 也可以下载并使用别人创建好的现成的镜像
- 还可以在现有镜像上创建新的镜像
我们可以将镜像的内容和创建步骤描述在一个文本文件中,这个文件被称作 Dockerfile,通过执行 docker build <docker-file>
命令可以构建出 Docker 镜像.
docker pull 命令是从Registry下载镜像
docker run命令是先下载镜像 然后再启动容器
下面看一个运行实例:
- Docker 客户端执行
docker run
命令。 - Docker daemon 发现本地没有 httpd 镜像。
- daemon 从 Docker Hub 下载镜像。
- 下载完成,镜像 httpd 被保存到本地。
- Docker daemon 启动容器。
docker images 可以看下已经下载到本地的镜像。
dokcer ps 可以查看哪些容器正在运行
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 基于Python3读写INI配置文件过程解析
- laravel 解决paginate查询多个字段报错的问题
- php判断/计算闰年的方法小结【三种方法】
- Laravel定时任务的每秒执行代码
- PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】
- Python通过zookeeper实现分布式服务代码解析
- laravel 实现向公共模板中传值 (view composer)
- PHP学习记录之面向对象(Object-oriented programming,OOP)基础【接口、抽象类、静态方法等】
- laravel 解决crontab不执行的问题
- PHP+Redis开发的书签案例实战详解
- Python持续监听文件变化代码实例
- laravel框架如何设置公共头和公共尾
- PHP结合Redis+MySQL实现冷热数据交换应用案例详解
- 浅谈Laravel模板实体转义带来的坑
- Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建