01_容器化技术 没用

云原生 容器化技术面试题

1、物理机、虚拟机、容器三者之间的区别?

 

image-20220328181832526

  • 虚拟机是底层计算资源的隔离

  • 应用层面的隔离

 

 

2、容器化技术应用到的Linux内核技术有哪些?

  • namespace

    • Linux内核用来隔离内核资源的方式

    • 在同一个 namespace 下的进程可以感知彼此的变化,而对外界的进程一无所知

    • 6个namespace

      • UTS 提供主机名隔离

      • PID 提供进程隔离

      • IPC 提供进程间通信隔离

      • Network 提供网络隔离

      • User 提供用户隔离

      • Mount 提供硬盘挂载点和文件系统的隔离能力

  • cgroups

    • 一个容器如果不对其做任何资源限制,则宿主机会允许其占用无限大的内存空间,有时候会因为代码bug程序会一直申请内存,直到把宿主机内存占完。

    • 为了避免此类的问题出现,宿主机有必要对容器进行资源分配限制,比如CPU,内存等,Linux Cgroups的全称是Linux Control Groups,它最主要的作用就是限制一个进程组能够使用的资源上限,包括CPU,内存,磁盘,网络带宽等等。

 

3、docker容器技术生态

image-20220328184229143

 

 

 

4、使用容器安全吗?

Docker 利用了 Linux 内核中很多安全特性来保证不同容器之间的隔离,并且通过签名机制来对镜像进行验证。大量生产环境的部署证明,Docker 虽然隔离性无法与虚拟机相比,但仍然具有极高的安全性。

 

5、如何清理后台停止的容器?

 

docker rm $(docker ps -a -q)

 

6、如何查看容器镜像支持的变量

 

docker run centos:latest env

 

7、容器启动报错排除方法

 

docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/bash/sh": stat /bash/sh: no such file or directory: unknown.

 

8、容器本地镜像存放位置

 

/var/lib/docker

 

9、Docker容器管理工具与Containerd容器管理工具各自优势

  • Docker

    • 生态更全

    • 技术更完善

    • 占用主机资源更多

 

  • Containerd

    • 轻量级或工业级

    • 占用主机资源少

    • 技术体系不完善

 

10、关于Dockerfile使用频率

在企业内部发布应用时,一般都需要团队自己创建业务容器镜像,特别是在使用CI/CD体系发布业务代码时,Dockerfile是非常重要的组成部分。

 

11、构建Docker镜像应该遵循哪些原则?

在整体原则上,尽量保持镜像功能的明确和内容的精简,要点包括:

  • 尽量选取满足需求但较小的基础系统镜像

  • 清理编译生成文件、安装包的缓存等临时文件

  • 安装各个软件时候要指定准确的版本号,并避免引入不需要的依赖

  • 从安全的角度考虑,应用尽量使用系统的库和依赖

  • 使用Dockerfile创建镜像时候要添加.dockerignore文件或使用干净的工作目录

 

12、如何快速结束正在运行的容器

 

docker kill $(docker ps -q)

 

13、容器退出后,通过docker ps 命令查看不到,数据会丢失么?

容器退出后会处于终止(exited)状态,此时可以通过 docker ps -a 查看,其中数据不会丢失,还可以通过docker start 来启动,只有删除容器才会清除数据。

 

14、容器中数据持久化存储是如何实现的?

可能通过挂载本机存储卷的方式,或使用远程存储服务器。

 

15、docker compose适合企业生产环境吗?

适合,例如现在使用的harbor容器镜像就是使用docker compse运行的。

posted @ 2023-06-04 18:12  十一vs十一  阅读(7)  评论(0编辑  收藏  举报