Docker 常见面试题

Docker 常见面试题

  • 1. Docker 概述
    • 1.1 Docker 是什么
    • 1.2 Docker 能干什么
    • 1.3 Docker 的基本组成
  • 2. Docker 的基本使用
    • 2.1 镜像相关指令
    • 2.2 容器相关的命令
    • 2.3 常用的其它命令

1. Docker 概述

1.1 Docker 是什么

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。

  • 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
  • 容器化软件适用于基于 Linux 和 Windows 的应用,在任何环境中都能够始终如一地运行。
  • 容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

Docker 常见面试题_第1张图片

1.2 Docker 能干什么

  • Web 应用的自动打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

虚拟机技术缺点:

  1. 资源占用过多
  2. 冗余步骤多
  3. 启动慢

比较 Docker 和 虚拟机技术的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;
  • Docker 容器内的应用直接运行在宿主机的内容,容器没有自己的内核,也没有虚拟硬件;
  • 每个容器都是相互隔离的,每个容器都有属于自己的文件系统,互不影响。

1.3 Docker 的基本组成

  • 镜像:Image,docker 镜像就好比是一个模版,可以通过这个模版来创建容器服务。可以类比 Java 中的类,它本身不具备执行运行的能力,是一个对象抽象的模版。每个模版可以有多个版本,用 tag 来区分。镜像可以通过 Dockerfile 来构建。
  • 容器:Container,Docker 运行的最小单位对象。它是通过镜像实例化出来的一个可运行对象。容器的修改,可以通过提交反作用于镜像,更新这个容器的模版。
  • 仓库:Repository,用于存储管理镜像的仓库,类似于 git 管理代码的仓库一样,可以管理多版本的镜像。

Docker 常见面试题_第2张图片

2. Docker 的基本使用

2.1 镜像相关指令

  1. 查看本地主机的所用镜像:docker images
  2. 搜索镜像:docker search mysql
  3. 下载镜像:docker pull mysql,没写 tag 就默认下载最新的 lastest
  4. 下载指定版本的镜像:docker pull mysql:5.7
  5. 删除镜像:docker rmi -f 镜像id 镜像id 镜像id

2.2 容器相关的命令

  1. 运行容器:docker run [可选参数] image
  2. 运行并进入容器centos:docker run -it centos /bin/bash
  3. 停止并退出容器(后台方式运行则仅退出):exit
  4. 退出容器但不停止:Ctrl + p + q
  5. 列出所有运行过的容器:docker ps -a
  6. 删除容器:docker rm 容器id (不能删除运行中的容器)
  7. 强制删除容器,包括运行中的容器:docker rm -f 容器ID
  8. 启动和停止容器命令:
    docker start 容器id          #启动容器
    docker restart 容器id        #重启容器
    docker stop 容器id           #停止当前运行的容器
    docker kill 容器id           #强制停止当前容器
    

docker 中 run 和 start 的区别是什么

  • docker run 相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
  • docker start 的作用是,重新启动已存在的镜像。

2.3 常用的其它命令

  1. 后台启动:docker run -it centos /bin/bash
  2. 查看日志:docker logs
    Docker 常见面试题_第3张图片
  3. 查看容器内部进程信息:docker top 容器id
  4. 查看镜像的元数据:docker inspect 容器id
  5. 进入当前正在进行的容器:
  1. docker exec -it 容器id /bin/bash
  2. docker attach 容器id

exec 进入容器后开启一个新的终端,可以在里面操作(常用)
attach 进入容器正在执行的终端,不会启动新的进程!

  1. 从容器拷贝文件到主机:docker cp 容器id:路径 主机路径
  2. 从主机拷贝文件到容器:

你可能感兴趣的:(面试突击,docker,容器,面试)