1.namespace和cgroup 2.docker各种安装方式 3.docker镜像操作命令 4.docker容器的进程对应关系 5.docker的存储引擎(centos7.2devicemapper),推荐使用overlay2 6.UnionFileSystem联合文件挂载 七、面试
1. docker和虚拟机的区别
- 大概可以多跑(30%~50%)的数量
- 横向扩容方便(基于模板的)
- 速度快(秒级),消耗资源低
- 一个容器一般只跑一个服务,升级的时候不会有影响
- 内核上运行主进程->调用systemd进程->docker主进程->容器镜像2.怎么保证每个容器都有不同的文件系统并能相互不影响?3.一个容器主进程内的各个容器都是其子进程,那怎么实现同一个主进程下不同类型的子进程?各个进程间通信能相互访问(内存数据么?)
答:不能访问内存,有技术可以实现,但是没有必要1. 每个容器怎么解决IP及端口分配问题?
答:1. 多个容器的主机名能一样么?
答:6.每个容器要不要都有root用户?怎么解决账户重名的问题?7.docker的PID和宿主机的PID有什么关系?
答:systemd主进程下面是docker进程一次构建,到处运行
构建 image=镜像
运输 harbor
运行 端口
运行时
runc
containerd (google推出,docker附属出来的项目,功能太简单了,只能用来绑定容器,跑起来)
pouch (阿里推出的,开源的,基于docker,更新慢)
docker+k8s
没有内核,调用宿主机进行运行,自然利用率高
128G 虚拟机可以跑15个虚拟机 docker可以跑30多容器
体积小 速度快
#docker不支持ext3的磁盘分区
- 程序
- 工具
- 服务
- 三个核心组件
- 仓库 registry
- 镜像 images
- 容器 containers
- 隔离
- namespace
- cgouprfs
解决cicd的难处(操作系统不一样) 开发环境,编程语言
cicd
- docker 的镜像仓库、容器操作
- 三个核心组件:仓库、镜像、容器
- 镜像名字 仓库服务名/用户空间/镜像仓库名/:版本
- dockerfile的作用
- docker的资源限制和数据存放
- docker compose使用
docker名字一般是用目的命名
服务和工具的区别
服务类启动以后得一直运行,
工具会打包,自动断开,用的时候再启动
docker run -it --rm -v /root/log:/#docker的存储位置
cd var/lib/docker
#指定docker存储路径
vim /usr/lib/systemd/system/docker.serviceDocker内置网络驱动
docker info 可以查看
bridge
host
ipvlan
macvlan
null 无网络
overlay k8s中用的
自定义
