—linux容器技术基础、Cgroup以及Namespace
常用的容器技术:
1、docker
2、containerd
3、Gvisor
4、podman
—容器的优点:
1、快速部署
2、提高资源利用率
3、简化配置
4、快速迁移和扩展
—容器的缺点:
1、资源隔离相比较虚拟机不够彻底
—Namespace:
1、MNT Namespace 磁盘挂载隔离
2、PID Namespace 进程隔离
3、Net Namespace 网络隔离
4、User Namespace 用户隔离
5、UTS Namespace 主机名隔离
—Cgroup:
1、网络
2、内存
3、cpu
4、磁盘
—常见的运行时:
1、runc docker和containerd默认的runtime,基于go语言开发,遵循OCI规范
2、crun redhat推出的runtime,基于C语言开发,集成在podman内部,遵循OCI规范
3、gvisor google推出的runtime,基于go语言开发,遵循OCI规范
—docker存储
docker文件系统:
1、overlay linux内核3.18后支持
2、overlay2 overlay的升级版,所有linux发行版推荐使用的存储类型
3、devicemapper centos和redhat早期使用的存储驱动程序
4、vfs 用于测试环境 无法使用copy-on-write
5、AUFS 早期的UnionFS文件系统的实现 docker18.06之前版本使用的存储引擎
—安装docker
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/
执行安装docker的脚本
—创建docker数据卷
docker volume create docker-volume
—使用数据卷
docker run -itd -p 80:880 -v docker-volume nginx:alpine
—运行一个使用bridge模式的容器
docker run -itd --name wuyang-net -p 8080:8080 --net=bridge nginx:alpine
—运行一个使用container模式的容器
docker run -itd --net=container:wuyang-net nginx:alpine