第一章 容器介绍

  1. 什么是容器?
    通过命名空间与cgroups实现容器隔离与资源限制,是基于镜像只读层与顶层可写层运行的进程
  2. 容器的本质是什么?
    宿主机上的进程
  3. 容器可以直接运行在物理机上吗? 容器可以运行在虚拟机上吗?
    都可以
  4. 什么是docker? 优势是什么?
    docker是一款部署容器的工具, 同时为容器的运行提供环境
    一次构建, 多次部署
    实现容器隔离
    节省资源
  5. docker的特性是什么?
    隔离性: 每个容器拥有独立的文件系统, 网络以及进程, 并且容器与容器之间是独立的
    可度量性: 通过cgroups控制组来控制容器资源的分配, 避免资源异常占用
    可移植性: 通过AUFS来实现对容器的快速更新
  6. 容器与虚拟机的区别是什么?
    虚拟机: 有独立内核与操作系统
    容器: 无独立内核, 是宿主机上的进程
    第二章 容器基本概念
  7. docker的服务组成是什么? 作用分别是什么?
    docker服务端: 管理所有容器
    docker客户端: 是docker服务端的远程控制器
  8. docker的组件都有什么?
    仓库: 存放docker镜像, 分为公有仓库与私有仓库
    镜像: 是docker容器运行时的只读模板, 每一个镜像由一系列层组成
    容器: 通过命名空间与cgroups实现容器隔离与资源限制,是基于镜像只读层与顶层可写层运行的进程
  9. 对docker容器的修改, 会影响原本docker镜像吗?
    不会
  10. docker容器的运行, 依赖docker镜像吗?
    依赖
  11. 什么是基础镜像?
    指该镜像没有父镜像
  12. docker镜像名称的组成是什么?
    镜像仓库地址
    镜像名
    镜像标签(版本)
  13. docker容器由什么组成? 作用分别是什么?
    命名空间(namespace): 是基于Linux内核的资源隔离机制,是 Docker容器实现隔离的核心技术
    资源限制(cgroups): 规定容器的资源大小, 避免资源的异常占用
    文件系统: 是容器的文件系统, 所有对容器的写操作, 都会被记录在文件系统中
  14. 镜像与容器的关系是什么?
    镜像是容器运行的基础, 容器是镜像启动后的进程
  15. docker容器是在镜像层的基础上增加了可写层吗? docker容器的可写层, 是运行在cpu上的进程吗?
    是的
    是的
  16. docker容器的状态都有什么?
    create: 仅创建容器, 没有启动
    running: 容器处于运行中
    exited: 容器处于停止状态
  17. docker容器由运行状态到停止状态, 这期间对容器内的写操作, 都会被写入容器的文件系统吗?
    对的
  18. docker容器中, 进程之间的交互方法都有什么?
    共享内存
    信号量
    socket
    管道
    第三章 镜像管理
  19. 检索仓库中指定服务的镜像使用什么命令?
    docker search 仓库地址/镜像名
  20. 查看本地镜像使用什么命令?
    docker images
  21. 拉取镜像是什么命令?
    docker pull 仓库地址/镜像名:版本
  22. 删除镜像使用什么命令?
    docker rmi 仓库地址/镜像名:版本
  23. 查看镜像详细信息使用什么命令?
    docker inspect 仓库地址/镜像名:版本
  24. 修改镜像标签与名称使用什么命令?
    docker tag docker.1ms.run/nginx:latest nginx:v1
    第四章 容器管理
  25. 在启动容器时, 进入容器的shell, 若容器没有/bin/bash, 那么使用什么进入容器的shell ?
    /bin/sh
  26. 查看当前宿主机上容器的进程使用什么命令?
    docker ps -a
  27. 若容器处于创建状态, 启动该容器使用什么命令?
    docker start nginx1
  28. 前台启动容器使用什么命令?
    docker run -it --name nginx1 docker.1ms.run/nginx:latest /bin/bash
  29. 后台启动容器需要加shell吗?
    不需要
  30. 后台启动容器使用什么命令?
    docker run -itd --name nginx1 docker.1ms.run/nginx:latest
  31. 在创建并启动容器时, 没有指定容器名称, 那么该容器名称会自动分配吗?
    对的
  32. 容器处于运行状态, 通过宿主机正常关闭容器使用什么命令?
    docker stop 容器名称
  33. 容器处于运行状态, 通过宿主机强制关闭容器使用什么命令?
    docker kill 容器名称
  34. 在创建并启动容器时, 若需要容器的启动根据docker服务的启动而启动, 是用什么参数
    –restart=always
  35. 对于docker容器来说, exit命令与ctrl+p+q命令的有什么共同点, 有什么不同点?
    相同点: 都在容器内部执行, 不在宿主机上执行
    不同点: exit为退出容器并停止容器运行, ctrl+p+q表示仅退出
  36. 查看容器详细信息使用什么命令?
    docker inspect 容器名
  37. 删除容器前需要将容器先停止吗?
    对的
  38. 删除容器使用什么命令?
    docker rm 容器名称
  39. 连接运行状态的容器使用什么命令?
    docker exec -it nginx1 /bin/bash
  40. 动态查看容器的日志使用什么命令?
    docker logs -f nginx1
  41. 查看容器退出时的状态码, 使用什么命令?
    docker wait nginx1
  42. 容器的退出状态码, 0和其他数字分别表示什么?
    0: 正常退出
    非0: 非正常退出
  43. 宿主机与容器进行文件的拷贝使用什么命令? 目录拷贝使用什么参数?
    docker cp /root/1.txt nginx1:/tmp
    目录使用 -a
    第五章 容器打包
  44. 什么是容器的打包?
    将正在运行的容器压缩为tar包
  45. 将容器进行打包使用什么命令?
    docker export nginx1 > nginx.tar
  46. 将打包后的容器, 恢复为镜像使用什么命令? 运行该镜像使用什么命令?
    docker run -itd --name latest nginx:latest nginx -g “daemon off;”
    docker import nginx.tar nginx:v2
  47. 将容器提交为本地镜像使用什么命令?
    docker commit nginx1 nginx:v3
  48. 将镜像打包使用什么命令?
    docker save -o nginx1.tar nginx:v3
  49. 导入打包后的镜像使用什么命令?
    docker load < nginx1.tar
  50. docker制作镜像使用什么命令?
    docker build -t nginx:v7 -f dockerfile路径
  51. 制作docker镜像时, dockerfile中每一行命令的运行逻辑是什么?
    启动上一个容器, 执行命令, 退出容器
  52. 制作docker镜像时, dockerfile中都会用到哪些命令? 作用分别是什么?
    FROM: 指定基本镜像
    MAINTAINER: 指定镜像作者
    WORK: 指定工作目录
    ENV: 指定环境变量
    RUN: 指定运行命令
    ADD: 文件拷贝, 并自动解压
    EXPOSE: 定义容器中服务的端口
    ENTRYPOINT: 容器启动时, 执行的命令或脚本
    CMD: 容器启动时, 执行的命令或脚本
  53. dockerfile中, entrypoint与cmd的区别是什么?
    cmd: 受容器启动时影响, 可以被启动容器中的命令替换
    entrypoint: 不受容器启动时影响, 无法被启动容器中的命令替换, 除非强制替换
  54. 若想在启动容器时, 强制替换entrypoint中的指令, 使用什么参数
    –entrypoint 命令
  55. 轻量化的镜像, 含有什么单词?
    alpine
  56. 清理yum缓存, 使用什么命令?
    yum clean all
    第六章 私有化仓库
  57. 在为私有化仓库推送镜像前, 需要做什么?
    将镜像的registry改为, 私有仓库宿主机ip:端口/镜像名
  58. 私有化仓库中, 将https协议改为http协议怎么配置?
    私有化仓库的宿主机上创建/etc/docker/daemon.json文件
    文件中添加 “insecure-registries”:[“192.168.255.130:5000”]
  59. 其他宿主机上的镜像上传到该仓库, 怎么操作
    修改镜像名
    在/etc/docker/daemon.ljson中配置insecure-registries
  60. 为仓库推送镜像, 使用什么命令?
    docker push 镜像名:版本
  61. 在私有仓库拉取镜像, 使用什么命令?
    docker pull 镜像名:版本
  62. 查看私有仓库的镜像使用什么命令?
    curl http://192.168.255.130:5000/v2/_catalog
  63. 查看指定镜像的详细信息使用什么命令?
    curl 192.168.255.130:5000/v2/nginx/tags/list
    第七章 docker资源限制
  64. 什么是docker的资源限制?
    通过cgroup控制组, 来管理容器对cpu, 内存与磁盘资源的使用, 避免容器对资源的异常占用
  65. docker资源限制的作用是什么?
    合理的为容器分配硬件资源, 便于管理
    防止恶意攻击异常
  66. docker容器资源限制的方式都有什么?
    cpu资源限制
    内存资源限制
    磁盘资源限制
  67. docker的cpu资源限制, 可以指定容器占用cpu的确定值吗?
    不可以
  68. cpu资源限制的默认cpu share是多少?
    1024
  69. 若一台宿主机上, 每个容器的cpus核数之和大于宿主机的cpu核数, 容器会退出或失败吗?
    不会
  70. docker默认对容器的内存有资源限制吗?
    没有, 可以使用宿主机的所有内存
  71. cpu资源限制的方式都有什么?
    指定容器cpu权重
    指定cpu可使用核数
    绑定cpu
  72. 容器内存限制使用什么参数?
    启动是使用 -m 64M
    第八章 端口映射
  73. 什么是docker的端口映射?
    让外部能够通过宿主机端口访问容器内的服务
  74. 容器端口映射的方式都有什么?
    指定端口映射 -p 50:50
    随机端口映射 -P
  75. 查看容器端口映射使用什么命令?
    docker ps -a
    第九章 容器卷
  76. 什么是docker的容器卷?
    将宿主机上的某一目录挂载到容器中的指定目录, 实现将宿主与容器之间的数据共享
  77. 配置容器卷使用什么参数?
    -v 宿主机目录:容器目录
    第十章 docker的数据存储位置
  78. docker默认的数据存放路径是什么?
    /var/lib/docker
  79. 怎么查看docker的数据存放路径?
    docker info | grep Root
  80. 怎么修改docker的数据存放路径?
    vim /usr/lib/systemd/system/docker.service
    –data-root=/data
    systemctl restart docker
    第十一章
  81. docker支持的网络类型都有什么?
    桥接模式: 每个容器有独立ip, 连在docker0的网桥上
    none模式: 没有网络
    仅主机模式: 容器共用宿主机网络
  82. docker容器默认的网络类型是什么?
    桥接模式
  83. 桥接模式的特点是什么?
    容器之间可以通过ip互相访问
    外部通过端口映射访问容器提供的服务
  84. 容器默认的网段是什么?
    172.17.0
  85. 容器启动时怎么指定桥接模式?
    -p 80:80
  86. 仅主机网络模式的特点是什么?
    直接使用宿主机ip:port, 访问容器服务
    容易与宿主机端口产生冲突
  87. 在容器启动时, 怎么指定网络为仅主机模式?
    –network=host
  88. none网络模式的特点是什么?
    完全隔离, 容器之间, 容器与宿主机之间无法通信
  89. 在容器启动时, 怎么指定网络模式为none模式?
    –network=none
  90. 怎么查看容器的网络信息?
    docker inspecrt 容器名

更多推荐