1.物理机时代
2.虚拟机时代 主要解决上面硬件的问题
3.容器化时代 主要解决虚拟机操作系统还要占用资源
为了解决虚拟机中 操作系统
虚拟机是物理资源层面的隔离,容器是App层面的隔离。
容器化是一种标准化的应用打包。就是把所有的数据、应用程序等一起打包给运维,运维就可以直接把包进行还原部署
作为阿里云/腾讯云的容器化应用
是虚拟机+容器化的实现,比如我在阿里云买Mysql数据库使用,这个服务器就是一台服务器,根据应用场景的不同,来安装不同的容器。
Docker 标准化的应用
安装docker ,虚拟机要求 Centos 7
yum install -y yum-utils device-mapper-persistent-data | v2
yum -y install | docker-ce
service docker start
启动后查看docker版本号
docker version
会安装客户端上面 和服务端 下面 两个版本
我们可以尝试从docker 的中央仓库中 把hello-world 这个镜像拉取下来并运行
阿里云Docker 镜像加速服务
Docker 基本概念
Docker 是容器化平台
Docker Daemon 主要是镜像的获取,容器的创建,作为servier 主要提供服务的
Rest Api 层证明 docker 客户端是基于Http请求的
这种CS 架构下有什么好处呢?
作为客户端可以同时管理 上图右面的三台机器。、
容器与镜像
Docker 执行流程
比如我们想装Redis,客户端先执行Pull 命令。 Dockers_Host 中的Docker daemno 会在本地镜像中寻找是否由redis镜像,如果没有,就会从远程镜像拉取下来。燃火本地需要执行Docker run 命令 。会根据redis 镜像 创建一个Redis 的Container 容器。
Docker 常用命令
其中 -f 代表强制执行
Docker 宿主机 与容器通信 : 以上创建了一个tomcat 容器后不是直接能够访问了,因为外界是不能够直接访问里面容器的端口的,必须通过宿主机进行端口的映射才能访问。
端口的映射过程
然后输入 netstat -tulpn 查看端口号的使用情况
可以看到8000端口是监听状态,提供服务的程序名是docker proxy
这个程序主要是把8000端口转发到内部8080端口的一个代理。
但上面的程序运行是阻塞状态,如果想在后台运行需要 加一个 -d tomcat 命令可以后台运行。
容器内部结构
以tomcat举例,其实在容器内部是有一个迷你版的tomcat的
Docker 的生命周期
Dockerfile 主要为了 构建镜像
镜像分层(layer) 概念
Dockerfile 基础命令
Dockerfile 执行指令
原文:https://www.cnblogs.com/ScarecrowAnBird/p/14533530.html