Docker吐血总结

匿名 (未验证) 提交于 2019-12-03 00:02:01
安装啥的我就不说了 自己百度就行,本人是mac一路傻瓜安装。
docker与vm相比的优势:
1 启动快,秒级别 vm为分钟级
2 需要资源少,是轻量级的,docker容器直接与内核进行交互 vm则是通过Hypervisor(VMM)与内核进行交互
docker是MB级别 vm为GB级别
3 能创建上千个容器,vm只能创建几十个
4 高可用性 --通过docker的快速部署实现高可用
5 节约时间 --开发、测试、部署的时间都大大减少
6 DockerFile中记录容器的构建过程,可在集群中实现快速分发和快速部署
一、docker运行机制包括的三个核心组件:docker CLI、REST API和docker daemon(守护进程)
二、docker的架构主要包括三部分:Client(客户端)、DOCKER_HOST(docker主机,主要指docker daemon守护进程)和Register(注册中心,实质就是docker镜像仓库)
三、docker的底层技术(了解):Namespaces(名称空间,可以隔离容器)、Control groups(控制组,可以控制资源)、Union
file systems(联合文件系统)、Container format(容器格式)
四、Dockerfile:一般分为四个部分-基础镜像信息、维护者信息、镜像操作指令和容器启动时的执行指令
Dockerfile的常用指令:FROM、MAINTAINE、RUN、CMD、EXPOSE、EVN、ADD、COPY、ENTERPOINT、WORKDIR
COPY和ADD的区别:COPY不能复制远程URL路径文件,也不能解压文件,而ADD命令可以。EVN是设置环境变量的
五、Docker常用命令(包括客户端、网络管理、集群、节点、服务、数据卷 一些基本的ls啥的就不写了、太多):
docker images                 列出镜像
docker images -a                列出所有镜像,包括不使用的
docker ps                   列出容器
docker ps -a                  列出所有容器,包括停止的
docker logout                 退出docker hub或本地镜像连接的指令
docker run -d -p 5000:5000 --restart=always --name registry -v /mnt/registry:/var/lib/registry registry:2
                       启动Docker Registry 5000啥的都是不固定的
docker inspect                 查看详细信息的指令
ifconfig                    查看本地配置信息,可以查看例如本机IP地址
docker system                 用于管理docker
docker network create --driver 网络名...     创建自定义网络
docker run --network=网络名 ...         使用固定网络启动容器
docker swarm join --token ... ip地址       把工作节点添加到管理节点下 -在工作节点所在的docker中操作 ...为创建管理节点后展示的token那部分
docker node                  操作集群节点指令
docker service                 操作节点服务的指令
docker service scale 服务名=数量         更改服务副本数量的指令
docker service rm 服务名             删除服务
docker volume create 卷名            创建数据卷
docker volume inspect 卷名           查看数据卷详情
docker run -itd --name 容器名 --mount source=卷名,target=挂在目录地址 镜像名
docker run -itd --name 容器名 -v 卷名:挂载目录地址 镜像名
六、docker镜像管理工具(2个):Docker Hub、Docker Registry
七、将本地镜像推送到Docker Hub的注意点或步骤:
1 镜像名称必须符合DockerID/repository的形式规范
2 登录Docker Hub
3 推送镜像
4 设置Docker Hub为私有镜像 在Docker Hub的settings下设置make private
八、Docker Registry本地私有仓库搭建步骤
1 启动Docker Registry
2 重命名镜像 格式为:仓库IP:端口号/repository
3 推送镜像
九、Docker Registry本地私有仓库配置
1 查看Docker Registry私有仓库搭建地址
2 生成自签名证书
3 生成用户名和密码
4 启动Docker Registry本地镜像仓库服务
5 配置Docker Registry访问接口
十、验证Docker Registry本地私有仓库配置测试步骤
1 Docker Registry私有仓库使用登记
2 准备镜像文件
3 推送镜像
4 登录Docker Registry镜像仓库
5 再次推送镜像
6 结果验证
十一、docker三种网络:
1 bridge:可以实现与宿主机通信从而实现互联网通信功能
2 host:属于无网络,不能与外界网络通信
3 none:属于无网络,不能与外界网络通信
十二、自定义网络的种类:
1 桥接网络:保证容器的安全性,基于某种网络的驱动去创建新的这种网络,实现容器隔离
2 Swarm集群中的覆盖网络
3 定义网络插件
十三、使用bridge网络管理和使用自定义网络管理对于容器间通信的区别
1 使用默认的brigde网络万里的容器可以使用ip进行通信,但是不可以通过容器名称进行通信
2 使用自定义的网络管理的容器则同时可以使用ip和容器名称进行通信
十四、构建Docker Swarm集群的条件
1 多台机器切系统相同并且安装了docker
2 每个机器的ip地址固定
3 节点间使用相应的协议
十五、Docker数据管理
Docker镜像是通过读取Dockerfile文件中的指令构建的,Dockerfile中的每条指令都会创建一个镜像层,并且每层镜像都是只读的,这一系列的镜像层就构成了Docker镜像,
镜像层是叠加的
十六、Docker容器与镜像的主要区别
Docker容器与镜像的主要区别是顶部的容器层,而所有对容器中数据的添加、修改等操作都会被存储在容器层中,当容器被删除时,容器层也会被删除,其中存储的数据
会被一并删除,而下面的镜像层却保持不变。但一般不会将数据写到容器层,会使用数据外部挂载机制
十七、Docker数据挂载机制的三种方式
1 数据卷(volumes)
2 bind mounts(绑定挂载)
3 tmpfs mounts(tmpfs挂载)
十八、说明
本文档是我从各个docker书籍,博客上总结的,作为自己复习用的,如果总结的不到位,望理解~
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!