Docker实战——容器

目录

  • Docker 容器的基本概念与操作
      • 1.使用“docker create”创建容器。这里基于Nginx的镜像创建了一个容器,名字为mycontainer。
      • 2.使用“docker ps -a”命令查看所有的容器,这时的容器不一定是运行状态。
      • 3.使用 “docker start” 命令可以启动容器。
      • 4.使用 “docker run” 命令可以直接创建容器并启动容器。
      • 5.使用 “docker exec” 命令可以进入容器内。
      • 6.使用 “docker stop” 命令可以停止容器。
      • 7.使用 “docker rm” 命令可以删除容器。当容器正在运行时,是不能直接将其删除的。但可以使用 -f 参数进行强行删除。
      • 8.使用 “docker export” 命令导出一个已经创建的容器,不管容器处于什么状态。通过这种方式剋实现容器的迁移。
      • 9.使用 “docker import” 命令可以将从容器导出生成的文件重新导入容器。
      • 10.使用 mynginx_imported 镜像来创建一个容器。这里需要注意的是:如果要使用导入的镜像创建并启动容器,则需要在启动时跟上具体的命令,否则就会出现错误。
  • Docker 的日志
    • 访问Docker引擎日志
    • 访问Docker应用日志
      • 1.查看指定时间后的日志,只显示最后5行。
      • 2.查看容器最近30分钟的日志。
  • 管理容器的资源
    • 什么是 Linux CGroup
      • 1.确定操作系统的发行版本。
      • 2.根据操作系统的发行版本,可以确定是否启用了 Linux CGroup。
    • Docker 对内存的使用
      • 1.创建一个Dockerfile 文件,输入以下内容。
      • 2.执行 “docker build” 命令将其编译成镜像,镜像的名称是mycentos。
      • 3.以下语句使用了 mycentos 来进行测试。
      • 4.使用 “docker stats” 命令观察容器占用的内存,会发现容器占用的内存被限定在256MB。
    • Docker 对 I/O 宽带的使用
      • 1.执行以下命令可以获取这些参数机器含义。
      • 2.Docker I/O 管理相关参数。
      • 3.下面通过两个示例来演示如何在启动了的 Docker 容器中使用上面的参数来对容器使用的 I/O 带宽进行限定
        • 示例一
          • 1.使用 --device-read-bps 和 --device-write-bps 参数限定容器的读写速率。
          • 2.在容器中执行以下命令。其中,oflag=direct 表示读写数据采用直接 I/O 方式。
          • 3.在宿主机上使用 iotop 命令观察容器的写入速度,会发现容器的写入速度被限定在1035kb/s(即 1 MB/s 左右)。
          • 4.以下语句将限制容器的读取速度为 1MB/s。
        • 示例二 使用 --device-read-iops 和 --device-write-iops 参数限定容器的读写次数。
          • 1.为了观察结果,先在宿主机上安装 sysstat 软件包。
          • 2.创建并启动容器,通过使用 --device-write-iops 参数将容器写数据的速率设定为每秒5次。
          • 3.在容器中执行以下命令,其中,oflag=direct 表示读写数据采用直接 I/O 方式。
          • 4.在宿主机上使用以下命令观察输出结果,这个命令每个1秒刷新1次。
          • 5.以下语句会将容器读取数据的速率设定为每秒5次
  • 管理Docker容器中的数据
    • 在 Docker 容器中实现数据管理的两种方式
      • 1.数据卷(Data Volumes)
      • 2.数据卷容器(Data Volume Containers)
    • 使用数据卷管理 Docker 容器中的数据
      • 1.创建一个名为 “myvolume” 的数据卷。
      • 2.查看所有的数据卷。
      • 3.使用 “docker inspect volume” 命令查看数据卷的详细信息。
      • 4.启动一个容器,并使用 myvolume 数据卷。这里使用 Nginx 镜像创建一个容器,并将容器的 80 端口映射到宿主机的 1234 端口,容器名称为 “mynginx”
      • 5.切换到 “/var/lib/docker/volumes/myvolume/_data” 目录下,并修改 Nginx的首页 index.html 文件的内容
      • 6.通过浏览器访问宿主机的 1234 端口,打开Nginx的主页会看到显示的就是新修改的Nginx主页。
      • 7.在挂载数据卷时,也可以使用 -v 参数。以下命令是将宿主机的 "/root" 目录挂载到了容器内的 “/root/container/mydatavolume” 目录下。下图表示挂载成功了。

Docker 容器的基本概念与操作

Docker 的容器类似操作系统的文件夹,其中包含应用喝应用运行时所需要的依赖环境。每一个Docker 容器都是从 Docker 镜像创建的。
Docker 容器的操作包括:创建容器、停止容器、进入容器、删除容器、导入和导出容器、查看容器等。

1.使用“docker create”创建容器。这里基于Nginx的镜像创建了一个容器,名字为mycontainer。

sudo docker create --name mycontainer nginx

在这里插入图片描述

2.使用“docker ps -a”命令查看所有的容器,这时的容器不一定是运行状态。

# 查看所有容器
sudo docker ps -a
# 查看所有运行中的容器
sudo docker ps

在这里插入图片描述

3.使用 “docker start” 命令可以启动容器。

sudo docker start [CONTAINER ID]

在这里插入图片描述

4.使用 “docker run” 命令可以直接创建容器并启动容器。

sudo docker run -d --name mycontainer1 nginx

在这里插入图片描述

5.使用 “docker exec” 命令可以进入容器内。

sudo docker exec -it [CONTAINER ID]/[CONTAINER NAMES] /bin/bash
# 其中的参数说明
# -t :为Docker 分配一个伪终端
# -i :为Docker 打开标准输入

在这里插入图片描述

6.使用 “docker stop” 命令可以停止容器。

sudo docker stop [CONTAINER ID]/[CONTAINER NAMES]

在这里插入图片描述

7.使用 “docker rm” 命令可以删除容器。当容器正在运行时,是不能直接将其删除的。但可以使用 -f 参数进行强行删除。

sudo docker rm [CONTAINER ID]/[CONTAINER NAMES]

在这里插入图片描述

8.使用 “docker export” 命令导出一个已经创建的容器,不管容器处于什么状态。通过这种方式剋实现容器的迁移。

sudo docker export -o <name.tar> [CONTAINER ID]

在这里插入图片描述

9.使用 “docker import” 命令可以将从容器导出生成的文件重新导入容器。

sudo docker import nginx.tar mynginx_imported
# 这里mynginx_imported是一个镜像

在这里插入图片描述

10.使用 mynginx_imported 镜像来创建一个容器。这里需要注意的是:如果要使用导入的镜像创建并启动容器,则需要在启动时跟上具体的命令,否则就会出现错误。

# 错误写法
sudo docker run -d mynginx_imported
# 正确写法
sudo docker run -d mynginx_imported /bin/bash
# 其中/bin/bash表示在启动容器时需要在容器中执行的指令。

在这里插入图片描述

Docker 的日志

在 Docker 的整个生命周期中,超过70%的时间我们都是在做 Docker 的运维工作。查看 Docker 日志,是运维工作中非常重要的一个环节。
Docker 日志分为两种类型:Docker 引擎的日志、应用的日志。下面分别对这两种日志进行介绍。

访问Docker引擎日志

Docker 引擎的日志是指,在 Docker 守护进程执行过程中产生的日志信息。如果 Docker 引擎出现了问题,则需要在不同的操作系统的宿主机上使用不同的方式进行查看。

操作系统日志位置
Ubuntu 22.04journalctl -u docker.service在这里插入图片描述

访问Docker应用日志

Docker 将应用运行在容器中,应用输出日志也就输出到容器中了,访问Docker 应哟个的日志也就变成访问 Docker 容器的日志。要访问容器的日志,首先需要了解 Docker 的日志引擎。以下是 Docker 支持的日志引擎。

日志引擎说明
journaldDocker 默认的日志引擎。这种引擎把所有容器的回显日志输出到系统的journald中
json-file把每个容器的回显日志以JSON 文件格式输出到每个容器的内部。如果在实际应用中某些应用产生了大量的日志信息,则可能导致容器的 JSON 日志文件过大而占满宿主机的磁盘
syslog把所有容器的回显日志输出到系统的 syslog 服务中
fluentd把所有容器的回显日志输出到系统的 fluentd 服务中
gelf把所有容器的日志输出到支持 GELF 格式的服务中,如 Logstash
none关闭 Docker 容器的日志。使用这种方式 ,则意味着无法通过 “docker logs” 命令查看任何容器输出的日志

利用以下命令查看 Docker 默认的日志引擎

sudo docker info | grep Logging

在这里插入图片描述

并不推荐直接读取 Docker 日志内容,原因是 Docker 提供了 “docker logs” 命令来帮助我们读取日志信息。
以下图片内容由另一台服务器提供(仅供示例参考)

1.查看指定时间后的日志,只显示最后5行。

docker logs -f -t --since='2024-01-01' --tail=5 [CONTAINER ID]

在这里插入图片描述

2.查看容器最近30分钟的日志。

docker logs --since 30m [CONTAINER ID]

在这里插入图片描述

管理容器的资源

在一台 Docker 宿主机上可以同时启动多个容器。在默认情况,Docker 没有限制其中运行的容器使用硬件资源。而在实际环境中,容器的负载过高会占用宿主机的大量资源。这里的资源是指宿主机的 CPU、内存和 I/O 宽带这三个方面。
本节内容介绍如何使用 Docker 的资源管理给容器的资源使用设置一个阀值,以控制容器对宿主机 CPU、内存和 I/O 贷款的使用。

什么是 Linux CGroup

由于 Docker 构建在Linux 的基础上因此从 Linux 底层来看,Docker 是利用 Linux Control Group(简称:Linux CGroup)来实现对资源使用的控制。因此,要掌握 Docker 容器的资源管理,有必要先了解一下什么是 Linux CGroup。

Linux CGroup 是 Linux 中的一些进程,通过这些进程可以限制应用对资源的使用。并且,通过 Linux CGroup 可以对系统资源做精细化控制。

Linux CGroup 主要提供一下功能。
Resource limitation:限制资源的使用,例如,使用 CPU 及内存的上线。
Prioritization:应用优先级控制,例如,控制任务进度。
Accounting:应用的审计和统计,例如,实现应用的计费。
Control:实现对应用的控制,例如,应用的挂起、恢复和执行等。

要使用 Linux CGroup,则需要先通过执行以下步骤确定Linux 内核是否启用了 Linux CGroup。

1.确定操作系统的发行版本。

在这里插入图片描述

2.根据操作系统的发行版本,可以确定是否启用了 Linux CGroup。

cat /boot/config-5.15.0-92-generic | grep CGROUP
# 其中CGROUP的参数值是 “y”,表示已经启动 Linux CGroup

在这里插入图片描述

Docker 对内存的使用

利用底层的 Linux CGroup,能够很方便地通过参数 -m 来设定容器所使用的内存

默认情况下,一个容器可以使用主机上的所有内存。

在使用 -m 参数时,可以指定具体的参数值的后缀,如 K、M 或者 G。

下面通过具体的步骤来演示。这里基于CentOS的基础镜像安装压力测试工具 stress 来进行测试。

1.创建一个Dockerfile 文件,输入以下内容。

FROM centos:7
RUN yum install -y epel-release && yum install -y stress
ENTRYPOINT ["stress"]

在这里插入图片描述

2.执行 “docker build” 命令将其编译成镜像,镜像的名称是mycentos。

sudo docker build -t mycentos .

在这里插入图片描述

3.以下语句使用了 mycentos 来进行测试。

sudo docker run -it --rm -m 256m mycentos --vm 1 --vm-bytes 128M --vm-hang 0
# 其中参数说明如下:
# -m 256m:限制容器使用内存的大小。
# --vm-bytes 128M:压力测试工具stress每次分配大小为128M的内存空间。
# --vm-hang 0:压力测试工具stress 分配完内存后立即释放分配的内存;如果该值为100,则表示分配内存后,等待100秒后再释放分配的内存。

在这里插入图片描述

4.使用 “docker stats” 命令观察容器占用的内存,会发现容器占用的内存被限定在256MB。

在这里插入图片描述

Docker 对 I/O 宽带的使用

要在 Docker 中对容器使用 I/O 带宽进行限定,则需要先了解 Docker I/O 管理相关的参数。

1.执行以下命令可以获取这些参数机器含义。

sudo docker help run | grep -E 'bps|IO'

在这里插入图片描述

2.Docker I/O 管理相关参数。

参数名称说明
–blkio-weight可以通过–blkio-weight修改容器 blkio 的权重,权重值为10~1000
–blkio-weight-device指定某个设备的权重
–device-read-bps按每秒读取设备的数据量设定上限
–device-read-iops按照每秒读操作的次数设定上限
–device-write-bps按每秒写入块设备的数据量设定上限
–device-write-iops按照每秒写操作次数设定上限

3.下面通过两个示例来演示如何在启动了的 Docker 容器中使用上面的参数来对容器使用的 I/O 带宽进行限定

示例一
1.使用 --device-read-bps 和 --device-write-bps 参数限定容器的读写速率。
sudo docker run -it --rm --device-write-bps /dev/sda:1mb centos /bin/bash

在这里插入图片描述

2.在容器中执行以下命令。其中,oflag=direct 表示读写数据采用直接 I/O 方式。
dd if=/dev/zero of=test.out bs=1M count=200 oflag=direct

在这里插入图片描述

3.在宿主机上使用 iotop 命令观察容器的写入速度,会发现容器的写入速度被限定在1035kb/s(即 1 MB/s 左右)。

在这里插入图片描述

4.以下语句将限制容器的读取速度为 1MB/s。
sudo docker run -it --rm --device-read-bps /dev/sda:1mb centos /bin/bash
示例二 使用 --device-read-iops 和 --device-write-iops 参数限定容器的读写次数。

参数 --device-read-iops 和 --device-write-iops 的格式如下,其中,limit必须是正整数。

--device-read-iops <device-path>:<limit>
--device-write-iops <device-path>:<limit>

以下是操作步骤。

1.为了观察结果,先在宿主机上安装 sysstat 软件包。
sudo apt-get install sysstat

在这里插入图片描述

2.创建并启动容器,通过使用 --device-write-iops 参数将容器写数据的速率设定为每秒5次。
sudo docker run -it --rm --device-write-iops /dev/sda:5 centos /bin/bash

在这里插入图片描述

3.在容器中执行以下命令,其中,oflag=direct 表示读写数据采用直接 I/O 方式。
dd if=/dev/zero of=test.out bs=1M count=200 oflag=direct

在这里插入图片描述

4.在宿主机上使用以下命令观察输出结果,这个命令每个1秒刷新1次。
iostat 1

在这里插入图片描述

5.以下语句会将容器读取数据的速率设定为每秒5次
sudo docker run -it --rm --device-read-iops /dev/sda:5 centos /bin/bash

管理Docker容器中的数据

在生产环境中使用 Docker,一方面,需要对数据进行保存或者在多个容器之间进行数据共享;另一方面,在 Docker 的容器被删除后,并不会涉及容器的数据管理。。
那么如何现实信息的持久化呢?这必然涉及容器的数据管理。

在 Docker 容器中实现数据管理的两种方式

1.数据卷(Data Volumes)

数据卷本质上是一个挂载目录,类似使用 Linux 的 mount 命令挂载的目录。数据卷可以供容器使用,并且可以在不同的容器之间共享和重用数据卷。对数据卷的修改会立即生效。数据卷与容器彼此独立,对数据卷的更新不会影响镜像

即使容器被删除,容器卷默认也会一直存在,直到数据卷被删除为止。
在 Docker 中可以使用 -mount 和 -v 两种方式给容器挂载数据卷。

2.数据卷容器(Data Volume Containers)

数据卷容器是一种特殊的容器,用来维护数据卷。它可以在多个容器之间共享数据信息。利用数据卷容器可以很方便的完成数据迁移。

使用数据卷管理 Docker 容器中的数据

下面通过具体实战来演示。

1.创建一个名为 “myvolume” 的数据卷。

sudo docker volume create myvolume

在这里插入图片描述

2.查看所有的数据卷。

sudo docker volume ls

在这里插入图片描述

3.使用 “docker inspect volume” 命令查看数据卷的详细信息。

sudo docker inspect myvolume

在这里插入图片描述

4.启动一个容器,并使用 myvolume 数据卷。这里使用 Nginx 镜像创建一个容器,并将容器的 80 端口映射到宿主机的 1234 端口,容器名称为 “mynginx”

sudo docker run -d -p 1234:80 --name mynginx --mount type=volume,source=myvolume,target=/usr/share/nginx/html/ nginx

其中的参数说明如下:
–mount:指定在容器启动时挂载数据卷
type:指定数据卷挂载的方式,它有三个值,看下表。

type的取值说明
volume普通数据卷,这是默认的type类型。其函数映射到主机 “、var/lib/docker/volumes” 目录下
bind绑定数据卷。使用这种类型可以在挂载数据卷时将其映射到主机的指定目录下
tmpfs临时数据卷,只将容器的目录挂载到宿主机的内存中。一般在实际环境中不会使用这种方式

source:指定宿主机上的目录或者数据卷。这里使用在第一步所创建的数据卷myvolume
target:将容器中的 “/usr/share/nginx/html/” 目录挂载到主机
在这里插入图片描述

通过宿主机的 “/var/lib/docker/volumes/myvolume/_data” 目录可以访问容器内部的 “/usr/share/nginx/html/” 目录。

5.切换到 “/var/lib/docker/volumes/myvolume/_data” 目录下,并修改 Nginx的首页 index.html 文件的内容

cd /var/lib/docker/volumes/myvolume/_data
echo "<h1>New Nginx Home Page</h1>" > index.html

在这里插入图片描述

6.通过浏览器访问宿主机的 1234 端口,打开Nginx的主页会看到显示的就是新修改的Nginx主页。

在这里插入图片描述

7.在挂载数据卷时,也可以使用 -v 参数。以下命令是将宿主机的 “/root” 目录挂载到了容器内的 “/root/container/mydatavolume” 目录下。下图表示挂载成功了。

sudo docker run -it -v /root:/root/container/mydatavolume centos bash

在这里插入图片描述
在这里插入图片描述
需要说明的是,使用这样的方式挂载的数据卷默认的权限是“读写”(rw),用户也可以通过 ro 将其指定为 “只读” 。

sudo docker run -it -v /root:/root/container/mydatavolume:ro centos bash

使用数据卷容器管理 Docker 容器中的数据,暂时不写了。有需要的可以留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化zabbix对Docker API的监控

启用Zabbix Agent 2对Docker API的监控&#xff0c;通常不需要直接编辑/etc/zabbix/zabbix_agent2.d/下的文件&#xff0c;因为针对Docker容器的监控是通过内建的插件实现的。以下是大致步骤&#xff1a; 确认Agent版本与配置&#xff1a; 确保你安装的是支持Docker监控的Zabbi…

JMeter正则表达式提取器和JSON提取器基础用法,小白必会!

【面试突击班】1. 性能测试主要关注哪些指标&#xff1f; 最近在利用JMeter做接口自动化测试&#xff0c;正则表达式提取器和JSON提取器用的还挺多&#xff0c;想着分享下&#xff0c;希望对大家的接口自动化测试项目有所启发。 在 JMeter 中&#xff0c;正则表达式和 JSON 提…

探索Ubuntu命令行:常见问题与解决方案

一、引言 Ubuntu&#xff0c;作为一款流行的Linux发行版&#xff0c;其命令行界面&#xff08;CLI&#xff09;为用户提供了丰富的功能和灵活性。然而&#xff0c;对于新手来说&#xff0c;命令行可能会带来一些挑战。本文将探讨一些在使用Ubuntu命令行时可能遇到的问题及其解决…

C语言内存优化实用指南

一、引言 在C语言编程中&#xff0c;内存管理是一项至关重要的任务。有效的内存优化可以提升程序的性能&#xff0c;减少资源消耗&#xff0c;并防止可能出现的内存泄漏和溢出问题。以下是一些关于C语言内存优化的实用指南。 二、理解内存管理 在C语言中&#xff0c;程序员需…

VMware虚拟机安装Linux

1.新建虚拟机 2. 安装操作系统 等待 选择中文 点软件选择 选择下面的GNOME桌面 禁用KDUMP 点进安装位置&#xff0c;点完成就可以了 网络连接&#xff0c;右上角打开 开始安装&#xff0c;输入ROOT密码&#xff0c;创建用户 点击重启&#xff0c;等待 重启完成之后出现下面的界…

Windows10蓝牙开关按钮不见了问题??

Windows10蓝牙开关按钮不见了问题&#xff1f;&#xff1f;此类问题一般是系统更新不及时的bug&#xff0c;遗漏掉了蓝牙相关驱动插件 试过很多方法&#xff0c;直接下载一个驱动人生即可&#xff0c;主要通过官网下载 下载这个就行 打开软件自动扫描就可以了 最后查看结果

python二级常见题目

一.常见语法 jieba—第三方中文分词函数库 jieba—第三方中文分词函数库_jieba库函数-CSDN博客 Python基础——format格式化 Python基础——format格式化_python format-CSDN博客 format()方法的使用超全_format方法-CSDN博客 Python中random函数用法整理 Python中random…

web安全学习笔记【19】——信息打点(9)

信息打点-红蓝队自动化项目&资产侦察&武器库部署&企查产权&网络空间[1] #知识点&#xff1a; 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源-CM…

第8章:Nginx与Web应用《Nginx实战:从入门到精通》

Nginx不仅仅是一个高效的静态内容服务器和反向代理服务器&#xff0c;它还能与各种流行的Web应用框架和语言环境无缝集成&#xff0c;从而提供强大的动态内容处理能力。在本章中&#xff0c;我们将深入探讨Nginx如何与PHP、Python、Ruby和Node.js等常见的Web应用和语言环境协同…

【AI视野·今日CV 计算机视觉论文速览 第300期】Fri, 1 Mar 2024

AI视野今日CS.CV 计算机视觉论文速览 Fri, 1 Mar 2024 Totally 114 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers DistriFusion: Distributed Parallel Inference for High-Resolution Diffusion Models Authors Muyang Li, Tianle Cai, J…

考研复试指南

1. 记住&#xff0c;复试的本质不是考试&#xff0c;而是一场自我展示。 考研复试并非简单的知识考察&#xff0c;更是一场展示自我能力和潜力的机会。除了学科知识&#xff0c;考官更关注你的综合素质、学术兴趣和未来发展规划。因此&#xff0c;要保持自信&#xff0c;用更全…

理疗美容按摩小程序有哪些功能

医疗、美容和按摩等行业是一个快速发展的领域&#xff0c;很多美容院和理疗中心都希望通过小程序来提升服务质量和用户体验。下面我们来看看一个理疗美容小程序可以具备哪些功能&#xff0c;并介绍如何使用这些功能。 1. **在线预约服务**&#xff1a;用户可以通过小程序预约理…

详解自动化测试框架特点和原理

【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程&#xff0c;一周学完让你面试通过率提高90%&#xff01;&#xff08;自动化测试&#xff09; 今天捡一些比较典型的工具型自动化框架来介绍&#xff0c;主要围绕历史、特点和原理来讲解&#xff0c;至于使用教程…

文件上传之图片马

图片马介绍 图片马&#xff1a;就是在正常图片中插入木马。 图片马的制作 1.我们先创建php木马文件1.php&#xff0c;内容有以下两种方式&#xff1a; <?php eval($_POST[a]); ?> /* 常规一句话木马 */ <?php $aPD9waHAgQGV2YWwoJF9QT1NUWydhJ10pOz8; $myfile…

MYSQL07高级_Hash结构、平衡二叉树、B树、B+树介绍

文章目录 ①. 全表遍历②. Hash结构③. 平衡二叉搜索树(AVL)④. B树⑤. B树⑥. 时间复杂度 选择的合理性 磁盘的I/O操作次数对索引的使用效率至关重要查找都是索引操作,一般来说索引非常大,尤其是关系型数据库,当数据量比较大的时候,索引的大小有可能几个G甚至更多,为了减少索引…

VMwareWorkstation17.0虚拟机安装搭建PcDos2000虚拟机(完整图文详细步骤教程)

VMwareWorkstation17.0虚拟机安装搭建PcDos2000虚拟机&#xff08;完整图文详细步骤教程&#xff09; 一、PcDos20001.PcDos2000简介2.PcDos2000下载 二、创建PcDos2000虚拟机1.新建虚拟机2.类型配置3.类型配置4.选择版本5.命名、存位置6.磁盘容量7.调整虚拟配置7.1 调整虚拟配…

pytest多重断言插件-pytest-assume

最近准备废弃之前用metersphere做的接口自动化&#xff0c;转战pytest了&#xff0c;先来分享下最近接触到的一个插件&#xff1a;pytest-assume。 在使用这个插件之前&#xff0c;如果一个用例里面有多个断言的话&#xff0c;前面的断言失败了&#xff0c;就不会去执行后面的断…

flutter打包命令

apk Build and release an Android app | FlutterHow to prepare for and release an Android app to the Play store.https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration flutter build apk --split-per-abi 如果不同cpu架构不打到同一个…

EI论文部分复现:含VSC-HVDC的交直流系统内点法最优潮流计算Simulink模型!

适用平台&#xff1a;MatlabSimulink&#xff1b;复现内容&#xff1a;VSC-HVDC模型 简介 高压直流传输系统主要包括换流站、输电线路和终端设备&#xff0c;其中换流站起着关键作用&#xff0c;他可以实现交流整流和直流逆变。常见的HVDC系统有全桥式、半桥式和两水平VSC等。…

基于springboot+vue的社区智慧养老监护管理平台

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…