1、docker流程
1.客户端
docker build
docker pull
docker run
2.docker主机
container容器
images镜像
3.仓库
2、docker底层原理
docker会在本机中寻找镜像,如果有该镜像,就会以它为模板,生产实例;
如果没有,就会去docker hub上查找镜像,查找到就会下载到本地,并且以它为模板,生产实例。
3、docker是什么
docker是一个cs结构的系统,docker的守护进程运行在主机上,然互通过socket连接客户端,docker接收到命令后管理运行在主机上的容器。
docker是一种容器化技术,与虚拟机相比,都是属于一种虚拟化技术
docker的核心思想,是隔离
4、为什么使用docker
1.为了方便环境的部署,线上,测试线环境一致
2.docker比vm启动快 占用的资源不多
3.有着更小的抽象层
4.每个容器间可以相互隔离 都有属于自己的一个文件系统
5.升级 扩容
5、docker镜像加载原理
联合文件系统 层层构建
依赖的是系统的内核
6、镜像的文件是如何存储的
分层存储
7、分层结构最大的特征
写时复制
分层实现资源共享,写时复制实现文件隔离
8、命令
docker version
docker info
docker xx -help
docker build
from
docker images
docker search
docker pull
docker rmi
docker run -it xxx bash
docker exec -it xxx
docker attach
docker start xx
docker restart
exit
ctrl + P + Q
docker ps
docker rm -rf xxx
docker export xx
docker stop xx
docker kill xx
docker logs -tf -tail 10 xxx
docker top xxx
docker inspect xxx
docker cp
9、设置容器依赖关系
docker-compose加入depends on
10、端口暴露
docker run -d --name xxx -p xx
11、容器数据卷
主要用来做数据的持久化,容器之间共享数据
docker run -it -v xxx xxx
docker volume ls
docker volume inspect xxx
12、docker compose
docker-compose.yml
轻松管理容器,运行多个容器
13、docker网络
1.veth-pair
一对虚拟的设备接口,都是成对出现的,一端连着协议,一端彼此相连
2.部署redis集群
自定义网络
docker network create xxx --subnet xxxxx
脚本循环创建redis配置文件
创建节点容器
docker run -p xxx
创建集群
redis-cli --cluster create xxx xxx xxx
14、dockerfile
通过镜像构建文件
一层层构建
流程:
1.构建dockfile文件
2.通过dockerfile构建生成的镜像
docker build -t xxx .
3.docker容器运行,提供服务
只有最后一个会生效,可以被替代
可以追加命令
15、composer如何实现自动加载
autoload如果没有找到类,require_once会自行加载指定的类
缺点是无法加载别人的代码,每个人的代码规范
spl_autoload_reigister
自定义的加载方法,可以灵活注册
16、composer.json的理解
单独可以分离的组件包,在其他地方也可以引入使用
是一个大的组件包,里面可以拆分为多个可以移植的单独的组件,可以不基于laravel,在其他地方也可以使用
但是需要用到契约去约束开发的人,避免出现问题。
17、composer镜像如何发布
git上创建仓库
compose init初始化
编写docker-composer.yml,里面描述容器的配置
里面放可执行的jar包
代码提交到github
提交到packagist