每日学习-07
问题一: docker的基本原理
问题二:镜像的来源和版本
问题三: docker composer的使用情况
问题四: 启动命令如何具体编排
问题五:为什么选择redis
问题一: docker的基本原理
Docker 本质是操作系统级虚拟化,依托 Linux 内核三大核心技术实现资源隔离与限制:
- Namespace(命名空间):实现隔离。给容器独立 PID、网络、挂载、用户、进程空间,容器内看不到宿主机其他进程。
- Cgroups(控制组):实现资源限制。管控 CPU、内存、磁盘 IO,防止容器抢占宿主机资源。
- UnionFS(联合文件系统):实现镜像分层。镜像由多层只读层叠加,容器启动新增一层可读写层,复用镜像层,节省空间、分发快。
补充一句话总结(面试开场直接说)
Docker 利用 Linux Namespace 做环境隔离、Cgroups 限制资源、联合文件系统实现分层镜像,轻量容器,相比虚拟机不需要完整操作系统内核,启动快、占用资源少。
问题二:镜像的来源和版本
1、镜像来源
- 公共仓库拉取:Docker Hub(官方)、阿里云镜像仓库、网易镜像等;
- 本地构建:编写 Dockerfile,
docker build生成自定义镜像; - 镜像导入导出:
docker save打包、docker load导入离线镜像; - 私有仓库推送拉取:搭建 Harbor 私有仓库,存放业务镜像。
2、镜像版本
- 镜像格式:
名称:标签(tag),tag 代表版本 latest:默认标签,不固定,不建议生产使用;- 规范做法:使用具体版本号(redis:6.2、mysql:8.0.30)锁定版本,避免自动更新带来兼容问题。
面试一句话小结
镜像来源主要是公共仓库、Dockerfile 构建、离线导入、私有仓库;依靠 tag 区分版本,生产禁止直接用 latest 标签。
问题三: docker composer的使用情况
核心作用
用来编排多个 Docker 容器,一次性管理一组关联服务(比如后端 + Redis+MySQL),不用逐个敲 docker run 命令。
使用要点
- 核心文件:
docker-compose.yml,定义服务、镜像、端口、挂载、网络、依赖关系; - 常用命令
docker-compose up -d后台启动docker-compose down停止并删除容器docker-compose logs查看日志 - 适用场景:本地开发、测试环境;
- 局限:单机编排,不能跨服务器;集群部署要用 K8s。
面试一句话总结
Compose 基于 yml 文件定义多容器服务,统一启停管理,适合单机多服务;仅单机有效,集群环境不适用。
问题四: 启动命令如何具体编排
两种方式
方式 1:docker run 单容器命令
按顺序编排核心参数:
- 基础配置:
docker run+-d后台运行、--name指定容器名 - 资源限制:
-m内存、--cpus限制 CPU,防止抢占宿主机资源 - 网络:
-p 宿主机端口:容器端口端口映射 - 持久化:
-v 宿主机目录:容器内目录数据挂载(避免容器删除数据丢失) - 环境变量:
-e传入配置(账号、密码、参数) - 镜像名称:版本 + 容器启动指令
示例骨架: docker run -d --name xxx -m 1g --cpus 1 -p 8080:8080 -v /data:/app -e ENV=test xxx:1.0
方式 2:docker-compose.yml 编排(多服务)
把 run 参数翻译成 yaml 配置,统一管理多容器,可配置服务依赖、网络、重启策略。
关键必加配置(生产重点)
--restart=always 容器异常自动重启
面试一句话总结
单容器用 docker run 有序组织容器名、资源限制、端口、数据挂载、环境变量;多服务使用 docker-compose.yml 统一编排,同时配置自动重启保证可用性。
问题五:为什么选择redis
核心理由
- 高性能:基于内存存储,读写速度极快;单节点支撑高并发。
- 数据类型丰富:String、Hash、List、Set、ZSet,满足多种业务场景。
- 持久化方案:RDB+AOF,防止宕机内存数据丢失。
- 高可用集群方案:主从复制、哨兵、Redis Cluster,支持故障转移与水平扩容。
- 附加能力:支持过期淘汰、事务、Lua 脚本、发布订阅、分布式锁。
常用业务场景(面试可以顺带提)
缓存、分布式锁、限流、消息队列、排行榜、会话存储。
一句话口述版
Redis 内存读写性能优异,支持多种数据结构,具备持久化、主从、集群高可用能力,能满足缓存、分布式锁等常见业务需求。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)