当前位置: 首页 > news >正文

Docker期末复习

云计算服务类型有:

IaaS 基础设施及服务
PaaS 平台及服务
SaaS 软件及服务

服务类型辨析示例:
IaaS 服务提供的云服务器软件到操作系统,具体应用软件自己安装,如腾讯云上申请的云服务器等;SaaS提供的服务就是具体的软件,例如微软的Office套件等。

云计算部署模式有:

私有云 规模小,成本高;安全性好
公有云 规模大,成本低;安全性不如私有云
混合云 具有公有云和私有云的优点,但结构复杂
社区云 又叫行业云,如教育云,高校云、健康云

容器与虚拟机的对比

优势:容器除了隔离性,其它都好于虚拟机。p6
劣势:容器基于进程的隔离,虚拟机基于系统的隔离。
容器隔离性不如虚拟机

Docker的架构

Docker的核心组件包括:
镜像
容器
仓库
客服端和服务器

docker的版本有

社区版: docker CE 免费
企业版: docker EE 需要付费,含部其它增强功能

Docker的部署环境

docker 可以部署到windows、Mac OS、linux等系统上
但生产环境下建议部署在linux下,不是部署在windows或Mac OS

容器技术产品

容器技术是一个开放的标准,有多种实现,Docker只是一种比较主流的实现,不是唯一的实现。

镜像加速器

官方镜像注册中心Docker Hub在海外,一般访问速度非常慢,通常需要设置国内其它镜像的注册中心作为镜像加速器。
常见的有阿里、腾讯、清华、网易、七牛云等国内的镜像服务器。

容器镜像

镜像是一个只读的分层的文件系统。包含了运行容器的应用程序和所需的依赖。
同一个镜像启动的多个容器共享一份镜像的文件,只读不能修改。

镜像的常见操作命令

搜索 docker search 关键字
查看本地 docker images
查看构建历史 docker history 镜像
查看详细信息 docker inspect 镜像
镜像打标签 docker tag 镜像 新名称和标签
导出到文件 docker save -o 文件名称 镜像列表
从文件导入镜像 docker load -i 文件名称
下拉到本地 docker pull 镜像
推送到注册中心 docker push 镜像
删除镜像 docker rmi

对镜像操作时对镜像的引用方式:

ID
ID的前几位
名称:tag 如果没有tag,缺省为latest; 又称为版本

组合命令

只查看镜像id 可以用docker images 加上 -q选项,结合组合命令,用$(docker images -q)可以对镜像进行批量操作。
如: docker rmi $(docker images -q) 删除本地全部镜像
理解组合命令执行的过程

docker search 搜索镜像

根据镜像名称、上传者、描述信息进行搜索
列出的信息中STARS表示关注度,使用量越大星标数越大
OFFICAL 表示是否为docker的官方镜像,官方镜像通过验证,安全性较高

用docker pull 下载镜像

没有设置镜像加速器时从docker官方注册中心下载
如果设置了镜像加速器,从设置的服务器下载镜像。

docker inspect

查看镜像详细信息,可以看到又哪些环境变量、容器启动时执行的默认命令等。

docker history

可以查看构建历史,可以看到镜像层数。

镜像的构建

镜像的构建一般有2种方式

  1. 先运行容器,然后修改容器,最后用docker commmit命令提交容器为新的镜像
  2. 定义Dockerfile描述镜像的构建过程,通过docker build 命令根据Dockerfile的定义构建新镜像。

docker commmit构建镜像的不足:

黑盒操作,维护修改困难
不利于版本管理

Dockerfile指令

  • FROM 指定父镜像 ,没有父镜像,也要指定为 scratch;必须是第一条命令
    RUN 指定构建镜像时,在临时容器中运行的命令。如在线安装包等。
  • ADD 将文件放入镜像,如果为打包文件,解包后放入镜像中; 也可以将URL中的资源放入。
    COPY 将文件直接放入镜像,打包文件不放入镜像中还是打包文件;不能直接将URL资源放入。
    WORKDIR 指定后续指令在容器中操作时的当前路径。
    ENV 定义容器中的环境变量
    VOLUME 定义容器的匿名数据卷及路径
    CMD 定义容器启动时执行的缺省命令

Dockerfile文件其它:

Dockerfile文件的缺省命令名称为Dockerfile,大小写都不能变,如果不是这个名称,docker build命令中可以用-f选项指定。

运行容器

命令格式
docker run [选项] 镜像 [容器启动命令]

运行容器的选项

-it 交互式
-d 后台运行
-w 运行时的容器当前路径
-e 指定环境变量
-h 容器的主机名
–name 容器名称
-p 主机端口:容器端口 端口映射
–rm 停止后自动删除
–restart always 自动重启
-v 容器路径 定义匿名卷
-v 命名卷:容器路径 命名卷挂载到容器
-v 主机路径:容器路径 绑定挂载

容器的运行方法2:

docker run = docker create + docker start
docker run 相当于 docker create 然后在 docker start
docker create 的选项与docker run 一样,只是创建后需要启动才能运行。

查看容器列表

docker ps
选项
-q 只列出id
-l 最近运行的容器
-n x 最近运行的x个容器
-a 所有状态的容器
-f 根据状态过滤

进入容器的方法

  1. docker attach 容器ID或名称
    特点:进入后,exit 或 Ctrl^ D退出会导致容器停止运行。用Ctrl^PQ退出不会使容器停止运行。
    为防止误操作导致容器停止,不建议使用该方式进入容器。

  2. docker exec [选项] 容器ID或名称 容器中执行的命令
    特点:进入后,exit 或 Ctrl^D退出不会使容器停止运行。
    例如:
    docker exec -it 容器ID或名称 sh 进入容器的shell
    docker exec -it 容器ID或名称 ip addr 容器中执行查看ip地址的命令

容器的三种状态

运行
暂停
停止

删除容器

docker rm 容器列表
正常不能删除正在运行的容器
选项
-f 强制删除,包含正在运行的容器

容器资源限制

可以限制的资源
CPU
内存
I/O

容器网络模式

none 模式 没有网络资源,不能同外部通讯;只有环回接口可用于本机通讯;适用与与外部无网络连接的情况
host 模式 同主机共用网络空间,与同是该模式的容器和主机间网络通讯效率高,但容易出现端口冲突
container模式 同共享的容器共用网络空间,与该容器间网络通讯效率高。k8s的Pod内的容器就是该网络模式
默认桥接网络模式 运行容器时不指定网络时,默认连接缺省桥接网络,只能通过IP通讯,不能用容器名称通讯
自定义桥接网络模式 需要自定义桥接网络,然后运行时指定该网络,既能能通过IP通讯,又能用容器名称通讯,是工程上推荐的用法

网络管理:

docker network create 网络名称 创建网络
docker network ls 列出网络
docker network insepct 网络名称 查看网络详情
docker network connect 网络名称 容器 容器连接到网络
docker network disconnect 网络名称 容器 容器与网络断开
docker network rm 网络列表 删除未用网络
docker network prune 删除未用的全部网络

数据卷解决的问题:

数据持久化
容器与主机间共享数据
容器间共享数据

数据卷定义:

  1. Dockerfile中用VOLUME指令可以定义匿名卷
  2. 容器运行时用-v选项可以定义数据卷

匿名卷:

宿主机上docker管理的特定区域映射到容器的路径,实现数据持久化,特点是一般不用管理该特定区域,卷名称随机生成,同时该卷的数据用户不方便找回。

命名卷:

宿主机上docker管理的特定区域映射到容器的路径,实现数据持久化,特点是不用管理该特定区域,卷名称用户定义,该卷的数据方便找回。
命名卷通过卷管理命令docker volume create 创建。

绑定挂载:

将宿主机上用户管理的目录或文件映射到容器;常用于挂载配置文件和挂载源代码到容器中。
缺点是:不便于移植和迁移容器,兼容性存在问题。

数据卷容器:

  1. 首先有一个含有数据卷的容器,如c1
  2. 再运行其它容器时,用–volumes-from c1 选项就能够挂载数据卷容器c1,则c1容器中的数据卷就共享给其它容器

数据卷管理:

docker volume create 数据卷名称 创建命名卷
docker volume ls 列出数据卷

docker volume insepct 数据卷名称 查看数据卷详情

docker volume rm 数据卷列表 删除数据卷
docker volume prune 删除未用的全部数据卷

数据卷-其它:

为保证持久化数据的安全,数据卷在容器删除时数据卷不会删除。

数据卷容器备份方案

目的:备份一个容器中数据卷内的数据
思路:

  1. 运行新容器,通过–volumes-from共享被备份的容器中的数据卷,得到备份源
  2. 运行的新容器还绑定挂载到宿主机的目录,作为备份的目的。
  3. 运行的容器运行打包命令将源备份到目的。
  4. 优化运行时直接执行,运行完成后自动删除执行备份操作的该容器。

容器编排

Docker Compose容器编排工具
通常构建复杂含多个容器的项目,或者选项或参数复杂的单个容器的项目

Docker Compose构建项目一般步骤

  1. 创建空目录
  2. 如果需要构建新镜像,编写相应的Dockerfile文件
  3. 编写项目配置文件docker-compose配置文件,该文件缺省名称就是docker-compose.yml
  4. 用docker-compose命令管理项目

docker-compose配置文件结构(选择)

包含version、services、networks、volumes 4个节
其中networks、volumes非必须
networks就是定义项目要使用的网络
volumes定义项目要使用的命名卷
services定义每个容器的属性,其中的网络和命名卷就是由networks、volumes节定义

常用的docker-compose命令:

该命令缺省在docker-compose.yml所在目录执行
docker-compose up 启动项目
docker-compose up -d 后台启动项目
docker-compose ps 查看项目进程
docker-compose logs 查看项目运行日志
docker-compose logs -f 查看项目运行日志,日志动态更新
docker-compose down 停止并销毁项目,包括全部容器、网络,不含数据卷
docker-compose down -v 停止并销毁项目,包括全部容器、网络,同时销毁数据卷

k8s:(选择or判断)

kubernates简称为k8s
Pod是kubernetes管理的最小单位,其中可以包含一个或多个相关的一组容器。同一个Pod内的容器共享网络名称空间和存储资源。
k8s的包括管理节点master和若干工作节点node组成。

k8s的各种模块:

master上包括apiServer、Scheduler、controller-mananger组成
node上包括 kubelet、kube-proxy、容器运行时runtime(docker)
还有分布式键值数据库etcd
客户端kubectl

k8s其它:

k8s 中的 Service 是一个用来暴露应用程序的网络服务资源。
k8s中,Replication Controller (RC)除了保证应用持续运行外,还提供一些高级特性,如:弹性伸缩、动态扩容、滚动升级。

问题思考:

1.结合你对云计算的了解,简要说明云计算的基本特征有哪些?
自助式服务、 随时随地使用、 可度量的服务、 快速资源扩缩、 资源池化
2.从磁盘空间、启动速度、并行运行数、隔离性、资源占用、镜像大小等方面对容器和虚拟机技术进行对比。p6
请添加图片描述

3.简述用Dockerfile构建镜像时的一般优化原则。p42

4.简述用dockr run 运行容器时,Docker引擎实际的操作过程。p53
5.Docker 本地网络模式主要有哪几种?请列出并分别说明特点。
6.简述docker的组成部分并描述各自的功能。
7.Docker容器间如何进行通信?简要说明Docker容器之间的通信方式和常用工具。
8.列出kubectl工具的常用命令,并对命令进行简要说明 (5item)。p193

相关文章:

Docker期末复习

云计算服务类型有: IaaS 基础设施及服务 PaaS 平台及服务 SaaS 软件及服务 服务类型辨析示例: IaaS 服务提供的云服务器软件到操作系统,具体应用软件自己安装,如腾讯云上申请的云服务器等;SaaS提供的服务就是具体的软件,例如微软的Office套件等。 云计算部署模式有: 私有云…...

DP:子数组问题

文章目录 引言子数组问题介绍动态规划的基本概念具体问题的解决方法动态规划解法:关于子数组问题的几个题1.最大子数组和2.环形子数组的最大和3.乘积最大子数组4.乘积为正数的最长子数组长度5.等差数列划分 总结 引言 介绍动态规划(DP)在解决…...

[Day 20] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在醫療領域的創新應用 隨著科技的快速發展,人工智能(AI)在各行各業的應用越來越廣泛,醫療領域也不例外。AI技術在醫療中的應用不僅提高了診斷的準確性,還改善了病患的治療效果,優化了醫療資源的配置。本…...

Handling `nil` Values in `NSDictionary` in Objective-C

Handling nil Values in NSDictionary in Objective-C When working with Objective-C, particularly when dealing with data returned from a server, it’s crucial (至关重要的) to handle nil values appropriately (适当地) to prevent unexpected crashes. Here, we ex…...

【深入浅出 】——【Python 字典】——【详解】

目录 1. 什么是 Python 字典? 1.1 字典的基本概念 1.2 字典的用途 1.3 字典的优势 2. 字典的基本特点 2.1 键的唯一性 2.2 可变性 2.3 无序性 3. 如何创建字典? 3.1 使用 {} 符号 3.2 使用 dict() 工厂方法 3.3 使用 fromkeys() 方法 4. 字…...

开发RpcProvider的发布服务(NotifyService)

1.发布服务过程 目前完成了mprpc框架项目中的以上的功能。 作为rpcprovider的使用者,也就是rpc方法的发布方 main函数如下: 首先我们init调用框架的init,然后启动一个provider,然后向provider上注册服务对象方法,即us…...

Suno: AI音乐创作的新时代

名人说:一点浩然气,千里快哉风。 ——苏轼 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是Suno?1、Suno2、应用场景二、如何使用Suno制作音乐?步骤1:注册并登录Suno平台步骤2:创建音乐项目步骤3:生成音乐片段三、Suno的影响很高兴你打开了…...

六西格玛项目实战:数据驱动,手机PCM率直线下降

在当前智能手机市场日益竞争激烈的背景下,消费者对手机质量的要求达到了前所未有的高度。PCM(可能指生产过程中的某种不良率或缺陷率)作为影响手机质量的关键因素,直接关联到消费者满意度和品牌形象。为了应对这一挑战&#xff0c…...

数据结构递归(01)汉诺塔经典问题

说明:使用递归时,必须要遵守两个限制条件: 递归存在限制条件,满⾜这个限制条件时,递归不再继续; 每次递归调⽤之后越来越接近这个限制条件; 1 汉诺塔(Hanoi Tower)经典…...

计算机专业课面试常见问题-计算机网络篇

目录 1. 计算机网络分为哪 5 层? 2. TCP 协议简述? 3. TCP 和 UDP 的区别?->不同的应用场景? 4. 从浏览器输入网址到显示页…...

HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑

使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…...

微信换手机号了怎么绑定新手机号?

微信换手机号了怎么绑定新手机号? 1、在手机上找到并打开微信; 2、打开微信后,点击底部我的,并进入微信设置; 3、在微信设置账号与安全内,找到手机号并点击进入; 4、选择更换手机号&#xff0c…...

64.WEB渗透测试-信息收集- WAF、框架组件识别(4)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:63.WEB渗透测试-信息收集- WAF、框架组件识别(3)-CSDN博客 我们在…...

java.lang.LinkageError: 链接错误的正确解决方法,亲测有效,嘿嘿,有效

文章目录 问题分析报错原因解决思路解决方法(含代码示例)1. 检查类加载器2. 避免在运行时修改类定义3. 更新或修复 JVM4. 检查应用程序的依赖使用 Maven 检查依赖项使用 Gradle 检查依赖项 java.lang.LinkageError 是 Java 虚拟机在尝试链接类定义时发生…...

python最基础

基本的类 python最基础、最常用的类主要有int整形,float浮点型,str字符串,list列表,dict字典,set集合,tuple元组等等。int整形、float浮点型一般用于给变量赋值,tuple元组属于不可变对象&#…...

Python学习路线图(2024最新版)

这是我最开始学Python时的一套学习路线,从入门到上手。(不敢说精通,哈哈~) 一、Python基础知识、变量、数据类型 二、Python条件结构、循环结构 三、Python函数 四、字符串 五、列表与元组 六、字典与集合 最后再送给大家一套免费…...

66、基于长短期记忆 (LSTM) 网络对序列数据进行分类

1、基于长短期记忆 (LSTM) 网络对序列数据进行分类的原理及流程 基于长短期记忆(LSTM)网络对序列数据进行分类是一种常见的深度学习任务,适用于处理具有时间或序列关系的数据。下面是在Matlab中使用LSTM网络对序列数据进行分类的基本原理和流…...

RabbitMQ消息可靠性等机制详解(精细版三)

目录 七 RabbitMQ的其他操作 7.1 消息的可靠性(发送可靠) 7.1.1 confim机制(保证发送可靠) 7.1.2 Return机制(保证发送可靠) 7.1.3 编写配置文件 7.1.4 开启Confirm和Return 7.2 手动Ack(保证接收可靠) 7.2.1 添加配置文件 7.2.2 手动ack 7.3 避免消息重复消费 7.3.…...

88888

49615...

深度学习之激活函数

激活函数的公式根据不同的函数类型而有所不同。以下是一些常见的激活函数及其数学公式: Sigmoid函数: 公式:f(x)特性:输出范围在0到1之间,常用于二分类问题,将输出转换为概率值。但存在梯度消失问题&#…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...