Java SpringCloud Docker面试题
- 前言
- 1、什么是 Docker 容器?
- 2、一个完整的Docker由哪些部分组成?
- 3、Docker常用命令?
- 4、描述 Docker 容器的生命周期?
- 5、Docker的工作原理是什么?
- 6、Docker 与 虚拟机 有何不同?
- 7、进入容器的方法有哪些?
- 8、如何临时退出一个正在交互的容器的终端,而不终止它?
- 9、如何在生产中监控 Docker?
- 10、为什么docker镜像要采用这种分层结构呢?
- 11、如果多个容器共享一份基础镜像,当某个容器修改了基础镜像的内容,比如/etc下的文件,这时其他容器的/etc是否也会被修改?
- 12、什么是 DockerFile?
- 13、什么是Docker Swarm?
- 14、Docker在后台的标准运行过程是什么?
- 15、什么是Docker的数据卷?
- 16、Docker的镜像是什么?
- 17、Docker和虚拟机有什么区别?
- 18、接⼝限流⽅法?
- 19、什么是漏桶算法?
- 20、什么是令牌桶算法?
- 总结
前言
最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。
如果对老铁有帮助,帮忙免费点个赞,谢谢你的发财手!
1、什么是 Docker 容器?
- Docker 是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 服务器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
2、一个完整的Docker由哪些部分组成?
- Docker Client 客户端:负责处理用户输入的命令与 Docker 的守护进程通信;
- Docker Daemon 守护进程:负责和Docker client交互;
- Docker Image 镜像:是创建容器的模板,同一个镜像可以创建多个不同的容器,如果把镜像比作程序里面的类,那么容器就是对象。可使用build 命令创建镜像。一个镜像是一个可执行的包,其中包括运行应用程序所需要的代码,依赖库、环境变量、和配置文件。
- Docker Container 容器: 是通过镜像生成的运行实例,不同容器之间是相互隔离、独立运行的,拥有自己的ip和文件目录;运行容器前需要本地存在对应的镜像,如果本地不存在该镜像则会去镜像仓库下载;
- Docker Registry 仓库:用来保存镜像,比如 DockerHub,可以将自己的镜像上传上去,每个镜像可以有不同标签(tag),可以理解为代码控制中的代码仓库。
3、Docker常用命令?
- 查看本机的所用镜像:
docker images
; - 搜索镜像:docker search mysql;
- 下载拉取镜像:docker pull mysql,没写 tag 就默认下载最新的 lastest;
- 将镜像推送至远程仓库:docker push mysql
- 清理一个或多个镜像:docker rmi -f 镜像id 镜像id 镜像id;
- 创建(并运行)容器:docker create(run), 通常一个容器就是一个应用或一个服务,也是我们常说的微服务;
- 启动/停止/杀死已有的容器:docker start/stop/kill <container_id>;
- 查看运行中/全部的容器:docker ps/ps -a;
- 导入/导出容器:docker import/export;
- 查看