Docker

  • 1. 什么是Doker
  • 1.1 依赖兼容问题
  • 1.2 Dockers如何解决依赖兼容问题
  • 1.3 操作系统不同,函数库不同
  • 1.4 Dockers如何解决不同系统环境问题
  • 1.5 总结
  • 1.5.1 Docker如何解决大型项目依赖关系复杂,不同组件依赖兼容问题
  • 1.5.2 Docker如何解决开发,测试,线上环境有差异的问题
  • 2. Docker和虚拟机的区别
  • 3. Docker架构(CS架构)
  • 3.1 镜像
  • 3.2 容器( Docker 镜像的运行时实例)
  • 3.3 Docker架构
  • 4. Docker基本操作
  • 4.1 从DockerHub拉取一个nginx镜像并查看
  • 5. 容器基本操作
  • 6. 数据卷
  • 6.1 容器与数据耦合的问题
  • 6.2 数据卷
  • 6.3 数据卷的作用
  • 6.4 demo
  • 6.4.1 创建一个数据卷,并查看在宿主机的目录位置
  • 6.4.2 数据卷挂载 - 创建一个nginx容器,并修改容器内html目录内的内容
  • 6.4.3 目录挂载
  • 6.4.5 数据卷挂载和目录挂载区别
  • 7. 镜像结构
  • 8. 如何从 Docker 镜像创建 Docker 容器?
  • 9. 如何启动、停止和终止容器?


1. 什么是Doker

1.1 依赖兼容问题

依赖关系复杂,容易发生兼容性问题

docker面试选择题 docker常见面试题_docker面试选择题

1.2 Dockers如何解决依赖兼容问题

将应用的函数库,依赖,配置与应用一起打包

将每个应用放到一个隔离容器中运行,避免相互干扰

docker面试选择题 docker常见面试题_Docker_02

1.3 操作系统不同,函数库不同

docker面试选择题 docker常见面试题_docker_03

1.4 Dockers如何解决不同系统环境问题

docker面试选择题 docker常见面试题_运维_04

1.5 总结

1.5.1 Docker如何解决大型项目依赖关系复杂,不同组件依赖兼容问题

Docker允许开发中将应用,依赖,函数库,配置一起打包,形成可移植镜像
Docker应用运行在容器中,使用沙箱机制,相互隔离

1.5.2 Docker如何解决开发,测试,线上环境有差异的问题

Docker镜像中有完整镜像环境,仅依赖Linux的系统内核,因此可以在任意Linux操作系统上运行

2. Docker和虚拟机的区别

Docker是一个系统进程,虚拟机是操作系统中的操作系统;
Docker体积小,启动快,性能好,虚拟机体积大,启动慢,性能一般

3. Docker架构(CS架构)

3.1 镜像

将应用程序,依赖,环境,配置打包在一起

3.2 容器( Docker 镜像的运行时实例)

镜像运行起来就是一个容器,一个镜像可以运行多个容器

3.3 Docker架构

服务端:接收命令或远程请求,操作镜像或容器

客户端:发送命令或远程请求到Docker服务端

docker面试选择题 docker常见面试题_docker面试选择题_05

4. Docker基本操作

docker面试选择题 docker常见面试题_docker_06

4.1 从DockerHub拉取一个nginx镜像并查看

docker面试选择题 docker常见面试题_linux_07

5. 容器基本操作

docker面试选择题 docker常见面试题_linux_08


docker面试选择题 docker常见面试题_linux_09

6. 数据卷

6.1 容器与数据耦合的问题

docker面试选择题 docker常见面试题_docker_10

6.2 数据卷

一个虚拟目录,指向宿主机文件系统的某个目录。

直接操作宿主机文件解决不方便修改问题;

不同容器共享数据解决数据不可服用问题;

容器与数据分离解决升级维护苦难问题。

docker面试选择题 docker常见面试题_linux_11

6.3 数据卷的作用

将容器与数据分离,方便操作容器内的数据。

6.4 demo

6.4.1 创建一个数据卷,并查看在宿主机的目录位置

docker面试选择题 docker常见面试题_Docker_12

6.4.2 数据卷挂载 - 创建一个nginx容器,并修改容器内html目录内的内容

docker面试选择题 docker常见面试题_Docker_13

docker面试选择题 docker常见面试题_docker_14


通过以上命令,拿到宿主机目录,可以在外部直接操作宿主机目录中的文件,这样容器内的文件也会被更新。

6.4.3 目录挂载

docker面试选择题 docker常见面试题_linux_15

6.4.5 数据卷挂载和目录挂载区别

docker面试选择题 docker常见面试题_docker_16


数据卷挂载:由Dockers管理目录,层级较深,不容易找到

目录挂载:需要自己管理目录,但是目录很好找

7. 镜像结构

docker面试选择题 docker常见面试题_linux_17

8. 如何从 Docker 镜像创建 Docker 容器?

$ docker run -it -d <image_name>

9. 如何启动、停止和终止容器?

启动 Docker 容器
$ docker start <container_id>

停止 Docker 容器
$ docker stop <container_id>

终止 Docker 容器
$ docker kill <container_id>