弹性架构设计之运维技术栈 (Docker基础技能【下,2024年哔哩哔哩Linux运维高级面试题及答案

  • docker image build 【option】

  • –rm 成功构建后删除中间容器

  • -f 指定Dockerfile的名称与路径默认当前路径/Dockerfile

  • -t 以“name:tag”格式命名

  • docker build --rm -f “Dockerfile” -t dingtalk.net:latest

  • 镜像历史信息(构建层级)

  • docker image history 【option】

  • -format 格式化输出

  • -H 以人类可读的格式打印大小与日期

  • –no-trunc 不要截断输出

  • 修改镜像的名称与标签

  • docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

  • 镜像推送

  • docker image pull 【option】

  • 如果命名空间不一致 则需要docker tag 命名修改名称与标签

容器命令

  • docker run 【option】 image

  • docker ps 【option】

  • -f 过滤条件

  • -a 显示所有容器

  • –format 格式化输出

    • l 显示最新创建的
  • -s 显示大小

  • docker ps --filter

  • 如果有多个过滤条件 写多个即可

  • docker ps --format

  • 通过配置占位符 进行格式化输出

  • 删除容器

  • docker rm 【option】 container

  • -f 强制删除正在执行的容器

  • -l 删除指定容器之间的基础连接

  • -v 删除与容器关联的数据卷

  • 删除所有已停止的容器

  • docker rm $(docker ps -a q)

  • docker rm $(docker ps -a q) -f

  • 查看容器环境变量

  • docker inspect 【option】

  • -f 格式化输出

  • -s 显示总的文件大小

  • –type 为指定类型输出JSON

  • 进入运行的容器

  • docker exec 【option】

  • -d 后台运行模式

  • -e 设置环境变量

  • -i 打开默认标准输入

  • -t 分配伪终端

  • -w 设置工作目录

  • -u 设置用户名

  • env 查看环境变量

  • 如何设置环境变量

  • 代码中 通过Dockerfile ENV配置

  • 运行时设置 docker run --env k=v

  • 运行中设置 docker exec --env

  • 进入容器后 ,env设置

  • 查看容器日志

  • docker logs 【option】

  • –detail 显示额外细节

  • -f 跟踪日志输出

  • –since 显示时间戳以后的日志

  • –until 显示时间戳之前的日志

  • -t 显示时间戳

  • 查看容器资料使用

  • docker stats 【option】

  • -a 显示所有容器

  • –format 格式化显示

  • –no-trunc 不要截断输出

  • 容器应用的时区

  • Linux系统默认时区是世界时区UTC

  • 中国属于东八区CST

  • 修改环境变量TZ,通常设置为‘Asia/Shanghai’

  • 推荐Dockerfile ENV里配置

  • 容器资源限制

  • docker run java-hello:latest --cpu 4 --memory 100m

  • scp 进行容器 与 宿主机 文件传输(-v 也可以)

仓库管理命令

调试命令

辅助工具

  • Kitematic (dockerUI界面管理)

  • 安装

  • 子主题 1

持续开发工作流程


Docker Compose

  • 基础使用

Dockerfile

  • 编写

  • Dockerfile指令

  • FROM

  • RUN

  • COPY

  • ADD

  • 比COPY多一个功能,通过URL复制文件到容器

  • WORKDIR

  • CMD

  • 存在多个,只会执行最后的一个

  • ENTRYPOINT

  • 多个时 只有最后一个有效

  • ENV

  • EXPOSE

  • 转义字符

  • 多行编写需要转行 以提高可读性 转移字符为 , windows中使用 `

  • 编写准则

  • 尽量选择官方镜像

  • 选择合适的基础镜像

  • alpine体积小的镜像

  • 优化指令顺序

  • 原因:Docker会缓存Dockerfile中尚未更改的所以步骤,但是不管更改什么指令,都会重做其后所以的步骤,也就是说,如果指令3有更改,那么4.5.6都会重做

  • 因此,应将最不可能修改的指令放在前面,安装这个顺序编写

  • 例如 WORKDIR ENV放在前面 COPY RUN放在后面

  • 只复制需要的文件,切忌复制所以内容

  • 最小化缓存的执行层 (RUN)

  • 使用多阶构建

  • 多阶构建可以由多个FROM指令组成,一个FROM语句表示一个新的构建阶段 阶段名可使用AS参数指定

  • 为了将构建好的包添加到其后镜像中,可以使用‘COPY --from=STAGE_NAME’ 指令,其中STAGE_NAME是上一次构建阶段的名称

  • 根据情况合并指令

  • 删除多余文件和清理中间结果

  • 使用.dockerignore 文件

  • 用于忽略那些镜像构建时非必须文件

构建Docker应用程序的基本步骤

  • 开发

  • 编写Dockerfile文件:有一系列命令与参数组成的脚本,用来构建镜像

  • 创建自定义镜像,基于’docker build’ 命令构建自定义镜像

  • 每个服务创建一个镜像

  • docker build ./ -t {镜像名称}

  • 镜像构建ok后使用 docker image ls查看

  • 定义docker-compose 。docker-compose是一个用于定义和运行多个Docker应用程序的工具

  • 使用YAML文件配置应用程序的服务,然后使用单个命名就可以从配置中创建并启动所以服务

  • docker-compose 通过命名管理应用程序的生命周期

  • 启停 重建 查看服务状态 对某个服务执行命名 通过流输出正在运行的服务日志

  • 查看相关命令

  • docker-compose -h

  • docker-compose up

  • docker-compose down

  • 使用步骤

  • Dockerfile定义应用环境

  • docker-compose.yml 定义组合应用,以便可以在隔离环境中一起运行

  • 不仅可以指定正在使用的容器,还可以指定如何单独配置各个容器

  • 配置项

  • build 定义镜像生成,可以指定Dockerfile文件目录路径

  • depends on 定义依赖关系控制服务启动顺序

  • docker-compose up 启动运行整个应用程序

  • docker-compose.yml

  • 了解yaml文件语法

  • 以数据为中心,使用空白 缩进 分行组织数据

  • 3种格式

  • 常量值

  • 对象

  • 数组

  • 基本原则

  • 大小写敏感

  • 使用缩进表示层级

  • 禁止使用tab 只能使用空格

  • 缩进长度没有限制,只要元素对齐就表示属于同一个层级

  • 使用#表示注释

  • 字符串可以不用引号标注

  • 定义多个服务,以便一次运行

  • 启动Docker应用程序, ‘docker run’ 也可以‘docker-compose up’

  • 应用程序只有一个容器 将其部署到Docker主机(服务器)docker run 即可,如果是多个服务容器使用 docker-compose up 将其部署为组合应用程序

  • 测试 基于容器进行测试

  • 自动化测试脚本

  • 部署或继续开发 ,基于容器实现持续交付与部署

  • docker push 推送镜像到镜像仓库

  • docker pull 拉取下来进行运行部署

  • 也可以使用docker-compose

  • 可以配合CI/CD实现自动化边开放边部署的工作

  • 也可以托管到k8s集群

数据库容器化


SQL Server

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

[外链图片转存中…(img-svygNmVp-1712418546800)]

给大家整理的电子书资料:

[外链图片转存中…(img-KnovTmhN-1712418546800)]

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值