Docker容器基础篇

news2024/9/8 23:53:23

一.Docker容器简要介绍

Docker 是一个开源项目,旨在提供轻量级的应用容器化解决方案。它允许开发者打包应用及其所有依赖项到一个标准化的单元中,称为容器。这些容器可以在开发人员的工作环境中构建,然后轻松地在不同的计算机、服务器或云平台上运行,而无需担心环境差异或依赖问题。

1.操作系统的组成

Bootloader (引导加载程序)

引导加载程序是启动计算机时加载操作系统的程序。它位于计算机的固件或引导设备的特定分区中,并负责引导操作系统的加载过程。

Shell (命令行解释器)

Shell 是用户与操作系统交互的主要界面,它可以理解和执行用户输入的命令。Shell 提供了命令行界面(CLI),允许用户通过输入命令来操作文件、进程以及运行其他程序。

Kernel (内核)

内核是操作系统的核心部分,负责管理计算机的硬件资源和提供基本的服务给其他软件。它管理内存、处理器、设备驱动程序和系统调度,确保软件和硬件资源的有效利用和安全运行。

Desktop Environment (桌面环境)

桌面环境是操作系统中提供给用户的图形用户界面(GUI),它包括窗口管理器、面板、图标、工具栏等,使得用户可以通过鼠标点击和图形化方式来操作和管理计算机系统。

Graphical Server (图形服务器)

图形服务器是操作系统的一个子系统,负责管理和渲染图形输出到显示器上。它接收来自应用程序的图形指令,并将它们转换为适合显示器显示的像素信息。

Applications (应用程序)

应用程序是用户直接使用的软件,用于执行特定的任务和操作。这些可以是办公软件如 Word、Excel,也可以是浏览器、媒体播放器等等。

Daemons (守护进程)

守护进程是在后台运行的服务程序,通常在系统启动时启动,并持续运行以提供某种服务或支持功能。它们通常不与用户交互,而是在系统运行时处理特定的任务或服务,例如网络服务、打印服务等。

 2.什么是内核kernel

内核(Kernel)是操作系统的核心组件,它在计算机系统中扮演着至关重要的角色。下面是内核的主要任务和功能:

进程管理

内核负责管理系统中的进程(也称为任务或线程),包括进程的创建、调度、终止和进程间通信。

内存管理

内核管理系统的物理内存和虚拟内存,包括内存的分配、释放、虚拟内存到物理内存的映射等。

I/O管理

内核管理输入输出操作,包括对设备(如硬盘、网络接口、显示器等)的访问和控制。

系统调用

内核提供系统调用接口,允许用户程序请求操作系统提供的服务,如文件操作、网络通信等。

设备驱动程序

内核通过设备驱动程序与硬件设备交互,驱动程序允许内核控制和管理各种硬件设备的操作。

安全性和权限管理

内核确保系统的安全性,包括权限管理、用户身份验证、访问控制等。

系统调度

内核根据预定的调度策略和优先级,决定哪个进程在何时运行,以优化系统资源的利用。

错误处理和容错

内核负责处理系统的错误和异常情况,以保证系统的稳定性和可靠性。

3.什么是内核空间和用户空间

内核空间

内核处于提升的系统状态,其中包括受保护的内存空间以及对设备硬件的完全访问权限。 此系统状态和内存空间统称为内核空间。 在内核空间内,对硬件和系统服务的核心访问进行管理,并作为服务提供给系统的其余部分。

用户空间

用户空间或用户域是在操作系统内核环境之外运行的代码,用户空间定义为操作系统用来与内核连接的各种应用程序或程序或库。

用户的应用程序是在用户空间中执行的,它们可以通过内核系统调用访问计算机可用资源的一部分。 通过使用内核提供的核心服务,可以创建用户级别的应用程序,例如游戏或办公软件。

4.容器和虚拟机表现比较

  1. 资源利用率更高

    容器确实比传统的虚拟机利用资源更高效。这是因为容器直接运行在宿主操作系统的内核上,无需额外的操作系统层,减少了资源消耗。虚拟机则需要独立的操作系统镜像和虚拟化管理层,因此通常会有更大的资源开销。
  2. 启动速度更快

    容器启动速度通常比虚拟机快得多。容器之间可以共享宿主操作系统的内核,因此它们可以在几秒钟内启动,而虚拟机需要启动完整的操作系统,通常需要数十秒到数分钟的时间。
  3. 占用空间更小

    容器通常占用的磁盘空间比虚拟机小得多。容器镜像一般以MB为单位,因为它们共享宿主操作系统的文件系统和资源。虚拟机则需要完整的独立操作系统镜像,因此通常以GB为单位。
  4. 集成性更好

    容器由于其轻量级和快速启动的特性,更适合与持续集成和持续部署(CI/CD)工具集成。开发团队可以更容易地将应用程序打包为容器镜像,并在不同环境中快速部署和运行,实现自动化和高效的开发生命周期管理。

5.Docker的组成

docker 官网: http://www.docker.com

帮助文档链接: https://docs.docker.com/

docker 镜像: https://hub.docker.com/

docker 中文网站:http://www.docker.org.cn/

  • Docker 主机(Host): 一个物理机或虚拟机,用于运行Docker服务进程和容器,也称为宿主机,node节点

  • Docker 服务端(Server): Docker守护进程,运行docker容器

  • Docker 客户端(Client): 客户端使用 docker 命令或其他工具调用docker API

  • Docker 镜像(Images): 镜像可以理解为创建实例使用的模板,本质上就是一些程序文件的集合

  • Docker 仓库(Registry): 保存镜像的仓库,官方仓库: https://hub.docker.com/,可以搭建私有仓库harbor

  • Docker 容器(Container): 容器是从镜像生成对外提供服务的一个或一组服务,其本质就是将镜像中的程序启动后生成的进程

6.验证系统cgroups

Cgroups在内核层默认已经开启,从CentOS 和 Ubuntu 不同版本对比,显然内核较新的支持的功能更多。

grep CGROUP /boot/config-3.10.0-693.el7.x86_64

cgroups具体实现

  • blkio: 块设备IO限制

  • cpu: 使用调度程序为 cgroup 任务提供 cpu 的访问

  • cpuacct: 产生 cgroup 任务的 cpu 资源报告

  • cpuset: 如果是多核心的 cpu,这个子系统会为 cgroup 任务分配单独的 cpu 和内存

  • devices: 允许或拒绝 cgroup 任务对设备的访问

  • freezer: 暂停和恢复 cgroup 任务

  • memory: 设置每个 cgroup 的内存限制以及产生内存资源报告

  • net_cls: 标记每个网络包以供 cgroup 方便使用

  • ns: 命名空间子系统

  • perf_event: 增加了对每 group 的监测跟踪的能力,可以监测属于某个特定的 group 的所有线程以及运行在特定CPU上的线程

7.Docker的缺点

  • 多个容器共用宿主机的内核,各应用之间的隔离不如虚拟机彻底

  • 由于和宿主机之间的进程也是隔离的,需要进入容器查看和调试容器内进程等资源,变得比较困难和繁琐

  • 如果容器内进程需要查看和调试,需要在每个容器内都需要安装相应的工具,这也造成存储空间的重复浪费

二.安装Docker

官方网址: https://www.docker.com/

OS系统版本选择:

Docker 目前已经支持多种操作系统的安装运行,比如Ubuntu、CentOS、Redhat、Debian、Fedora,甚至是还支持了Mac和Windows,在linux系统上需要内核版本在3.10或以上

Docker版本选择:

docker版本号之前一直是0.X版本或1.X版本,但是从2017年3月1号开始改为每个季度发布一次稳定版,其版本号规则也统一变更为YY.MM,例如17.09表示是2017年9月份发布的Docker之前没有区分版本,但是2017年推出(将docker更名为)新的项目Moby,github地址: https://github.com/moby/moby,Moby项目属于Docker项目的全新上游,Docker将是一个隶属于的Moby的子产品,而且之后的版本之后开始区分为 CE(Docker Community Edition,社区版本)和EE(Docker Enterprise Edition,企业收费版),CE社区版本和EE企业版本都是每个季度发布一个新版本,但是EE版本提供后期安全维护1年,而CE版本是4个月,以下为官方原文:

https://blog.docker.com/2017/03/docker-enterprise-edition/

如果要布署到kubernets上,需要查看相关kubernets对docker版本要求的说明,比如:

https://github.com/kubernetes/kubernetes/blob/v1.17.2/CHANGELOG-1.17.md

安装可以参考以下文档

阿里云文档: https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11guHCWE

官方文档 : https://docs.docker.com/engine/install/

1.yum安装

CentOS 6 因内核太旧,即使支持安装docker,但会有各种问题,不建议安装

CentOS 7 的 extras 源虽然可以安装docker,但包比较旧,建议从官方源或镜像源站点下载安装docker

CentOS 8 有新技术 podman 代替 docker

因此建议在CentOS 7 上安装 docker

#extras 源中包名为docker
yum list docker

官方地址下载 rpm包
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
阿里云地址下载
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/

cd /etc/yum.repos.d/
#CentOS 7 安装docker依赖三个yum源:Base,Extras,docker-ce

yum install -y yum-utils device-mapper-persistent-data lvm2
#安装 依赖工具
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#添加源信息
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
#修改配置文件
yum makecache fast
yum list docker-ce
#查看最新版本
yum list --showduplicates docker-ce
#查看所有的可用版本
yum list --help
#可以使用帮助查看
yum list docker-ce.x86_64 --showduplicates
#显示可安装版本
yum -y install docker-ce-19.03.15-3.el7 docker-ce-cli-19.03.15-3.el7  containerd.io
# 安装指定版本的Docker-CE和客户端,注意客户端也要指定,否则或造成不一致
#yum -y install docker-ce-[VERSION]
#如不指定版本默认最新

[root@localhost yum.repos.d]# mkdir -p /etc/docker
[root@localhost yum.repos.d]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://ifxbyp3x.mirror.aliyuncs.com"]
> }
> EOF
{
  "registry-mirrors": ["https://ifxbyp3x.mirror.aliyuncs.com"]
}
验证运行
[root@localhost yum.repos.d]# systemctl daemon-reload
[root@localhost yum.repos.d]# systemctl restart docker
[root@localhost yum.repos.d]# docker run hello-world

软件作用
docker-ce(Docker Community Edition)这是 Docker 的社区版。Docker 社区版是免费的, 面向开发者、小型团队和个人使用。它包含了 Docker Engine, 这是一个用于构建和运行容器的开源容器运行时。
docker-ce-cli(Docker Command Line Interface)这是 Docker 的命令行工具, 它允许用户与 Docker Engine 交互,执行容器相关的操作。 通过 Docker CLI,用户可以构建、运行、管理和发布容器。
containerd.io它负责管理容器的生命周期,包括容器的创建、运行、暂停、继续和销毁等

三.基础操作

1.docker程序环境

1.1 环境配置文件

/etc/sysconfig/docker-network
/etc/sysconfig/docker-storage
/etc/sysconfig/docker

1.2  Unit File

/usr/lib/systemd/system/docker.service

1.3  docker-ce 配置文件

/etc/docker/daemon.json

1.4  Docker Registry 配置文件

/etc/containers/registries.conf

2. 基础操作

2.1  查看docker 版本

docker version

2.2 docker 信息查看

[root@localhost data]#docker info 
Client: Docker Engine - Community
 Version:    26.1.4
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.27.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 2                     # 容器数量           
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 4                       # 镜像数量          
 Server Version: 26.1.4          # server 版本
 Storage Driver: overlay2        #docker 使用的是 overlay2 文件驱动  
  Backing Filesystem: xfs        ## 宿主机上的底层文件系统
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs          # Cgroups 驱动
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 3.10.0-693.el7.x86_64             # 宿主机的相关信息
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 1.781GiB
 Name: localhost.localdomain
 ID: 39eee203-7863-4c80-a955-9aef575138c1
 Docker Root Dir: /var/lib/docker                    # docker 数据存储目录
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://6ijb8ubo.mirror.aliyuncs.com/                   # registry 地址
 Live Restore Enabled: false

2.3 镜像仓库加速

#镜像加速下载
浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://ifxbyp3x.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

四.镜像管理

制作镜像  上传镜像  下载镜像  查找镜像  导出镜像  导入镜像  删除镜像  查询镜像

命令含义例子
docker --help查看帮助
docker image --help查看镜像帮助docker image --help
docker search 镜像名称搜索相关镜像docker search nginx
docker pull 镜像名称:标签下载镜像(不加标签默认使用latest)docker pull nginx
docker images查看所有已有镜像docker images
docker images 镜像名称查看单个镜像docker images nginx
docker inspect 镜像ID查看镜像的详细信息docker inspect 56b21e040954
docker tag 旧名称 新名称修改镜像的 标签docker tag nginx:latest lucky/nginx:1.25

1.搜索镜像

官方网站进行镜像的搜索

官网: http://www.docker.org.cn/

#格式
docker search 关键字
#NAME: 列出了搜索结果中各个镜像的名称。
#DESCRIPTION: 描述了每个镜像的简要说明或介绍。
#STARS: 显示了每个镜像的星级评分或受欢迎程度。星级数量越高表示该镜像的受欢迎程度越高。
#OFFICIAL: 表示是否是官方构建的镜像,OK表示是官方构建的。
#AUTOMATED: 表示是否是自动构建的镜像,这个字段没有值表示不是自动构建的。

2.下载镜像

从 docker 仓库将镜像下载到本地,命令格式如下

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Options:
  -a, --all-tags               Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --platform string         Set platform if server is multi-platform capable
  -q, --quiet                   Suppress verbose output

#NAME: 是镜像名,一般的形式 仓库服务器:端口/项目名称/镜像名称
#:TAG: 即版本号,如果不指定:TAG,则下载最新版镜像  工作中指定版本号
docker  pull nginx

3.查看镜像的信息

docker images
docker image inspect nginx   #可以指定名字
docker image inspect 605c77e624dd   #指定id
du /var/lib/docker/overlay2/
#此目录下有镜像文件了

4.镜像导出

利用docker save命令可以将从本地镜像导出为一个打包 tar文件,然后复制到其他服务器进行导入使用

格式:

docker save [OPTIONS] IMAGE [IMAGE...]
选项:  
-o, --output string   Write to a file, instead of STDOUT

常见用法:

docker save -o /path/file.tar IMAGE1 IMAGE2 ...
docker save IMAGE1 IMAGE2 ... > /path/file.tar

示例:

docker save alpine >/data/alpine.tar

docker save  -o /data/alpine.tar  #-o指定导出目录

5.删除镜像

格式:

docker rmi 镜像名称
docker rmi [OPTIONS] IMAGE [IMAGE...]
docker image rm [OPTIONS] IMAGE [IMAGE...]
#选项:
-f, --force     Force removal of the image
    --no-prune   Do not delete untagged p

docker images -q
列出系统中所有 Docker 镜像的 ID
docker rmi -f `docker images -q`
#删除所有镜像

示例: 

docker rmi apline

6.恢复镜像

格式:

docker load -i 镜像源路径

示例: 

docker load -i /data/alpine.tar

查看运行中的容器

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

docker run -d httpd
#运行容器 如果没有会去官网下载后运行
#镜像相当于模板   容器相对于虚拟机

7.镜像打标签

docker tag
docker tag busybox 192.168.240.11/data/buysbox:v1.0
docker images
docker rmi 192.168.240.11/data/buysbox:v1.0

8.上传镜像

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号,注册地址https://hub.docker.com。
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传

docker tag nginx:latest  zxy/nginx:latest
docker images

docker login								
#登录公共仓库

docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/zxyjing/zxy:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/zxyjing/zxy:[镜像版本号]
#上传镜像

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

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

相关文章

论文阅读:面向自动驾驶场景的多目标点云检测算法

论文地址:面向自动驾驶场景的多目标点云检测算法 概要 点云在自动驾驶系统中的三维目标检测是关键技术之一。目前主流的基于体素的无锚框检测算法通常采用复杂的二阶段修正模块,虽然在算法性能上有所提升,但往往伴随着较大的延迟。单阶段无锚框点云检测算法简化了检测流程,…

Linux安装vmware tools(vmware tools软件包来源ESXI8.0.3)

一、默认正常安装(也可以下载文章顶部资源上传linux服务器解压安装&#xff0c;免去挂载光驱的步骤) ##挂载cdrom到/mnt目录 [rootlocalhost /]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only [rootlocalhost /]# ##切换至/mnt目录 [rootlo…

CTF竞赛介绍以及刷题网址(非常详细)零基础入门到精通,收藏这一篇就够了

前言 CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今…

数据结构【有头双向链表】

目录 实现双向链表 双向链表数据 创建双向链表 初始化双向链表创建&#xff08;哨兵位&#xff09; 尾插 打印双向链表 头插 布尔类型 尾删 头删 查询 指定位置后插入 指定位置删除数据 销毁 顺序表和链表的分析 代码 list.h list.c test.c 注意&#xff1a…

用Python打造精彩动画与视频,2.2 使用Jupyter Notebook进行编程

2.2 使用Jupyter Notebook进行编程 Jupyter Notebook是一款广泛应用于数据科学、教学和研究的开源工具。它提供了一个交互式的编程环境&#xff0c;支持代码、文本、公式和可视化内容的集成显示&#xff0c;非常适合Python编程尤其是数据分析与可视化任务。 1. 什么是Jupyter…

2026考研数学武忠祥课程视频百度网盘资源+PDF讲义(永久更新)

虽然每年大家推荐的最多的是张宇和汤家凤&#xff0c;但是我强烈推荐武忠祥老师&#xff01; 2026考研数学武忠祥课程领取&#xff1a;2026武忠祥课程&#xff08;考研数学全程&#xff09;基础强化 武忠祥老师真宝藏老师&#xff0c;他讲课不像张宇老师那样段子频出&#xf…

模拟实现c++中的string

c内置string库的相关函数&#xff1a;string - C Reference 目录 一string类构造&#xff0c;拷贝构造和析构&#xff1a; 二string内正向迭代器实现&#xff1a; 三赋值运算符重载实现&#xff1a; 四reserve&#xff0c;empty&#xff0c;clear实现&#xff1a; 五push_b…

PHP与SEO,应用curl库获取百度下拉关键词案例!

编程语言从来都是工具&#xff0c;编程逻辑思维才是最重要的&#xff0c;在限定的规则内&#xff0c;实现自己的想法&#xff0c;正如人生一样&#xff01; 不管是python还是php只要掌握了基础语法规则&#xff0c;明确了实现过程&#xff0c;都能达到想要实现的结果&#xff0…

FFmpeg实战 - 解复用解码

文章目录 前置知识音视频基础概念解复用、解码的流程分析FFMPEG有8个常用库 常见音视频格式的介绍aac格式介绍h264格式介绍flv格式介绍mp4格式介绍 FFmpeg解码解封装实战数据包和数据帧&#xff08;AVPacket/AVFrame&#xff09;AVPacket/AVFrame的引用计数问题API介绍注意事项…

P4139 上帝与集合的正确用法

无限的2 用扩展欧拉定理处理式子 X>phi(p),上面的数 语言描述一下 我们从上面处理&#xff0c;处理到大于phi(p),用定理 我们接着处理 之后我们就可以接着处理Y 即递归phi(p) 确定递归终点phi(p)1 return 0 剩余值Z,Z%phi(1)phi(1)0; // Problem: P4139 上帝与集合…

银行贷款信用评分不足?大数据帮你找回失去的“分”

在这个信息爆炸的时代&#xff0c;无论是个人还是企业&#xff0c;数据都成为了衡量信用和评估风险的重要依据。贷款、融资、求职甚至是日常消费&#xff0c;都可能因为一份好的数据报告而变得更加顺畅。那么&#xff0c;如何高效地查询自己的大数据&#xff0c;面对评分不足时…

UDP通信 单播,广播,组播

UDP通信实现 #include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); - 参数&#xff1a; struct sockaddr *src_addr, socklen_t *addrlen…

十日Python项目——第四日(用户中心—收货地址)

#前言&#xff1a; 在最近十天我会用Python做一个购物类项目&#xff0c;会用到DjangoMysqlRedisVue等。 今天是第四天&#xff0c;主要负责撰写用户中心部分的收货地址部分。若是有不懂大家可以先阅读我的前三篇博客以能够顺承。 若是大家基础有不懂的&#xff0c;小编前面…

C语言:字符串函数、内存函数剖析

字符串函数、内存函数剖析 一、字符串函数&#xff08;一&#xff09;求字符串长度1、strlen&#xff08;1&#xff09;库函数实现&#xff08;2&#xff09;自定义实现 &#xff08;二&#xff09;长度不受限制的字符串函数1、strcpy&#xff08;1&#xff09;库函数实现&…

宠物猫用空气净化器真的有用吗?值得买的猫用空气净化器牌子排名

作为一名6年资深铲屎官&#xff0c;每天铲猫砂盆的工作无疑是一项挑战。家中不仅弥漫着难以忍受的气味&#xff0c;而且家里的小孩和老人偶尔会因为过敏性鼻炎或结膜炎等问题感到不适。换毛季节尤其头疼&#xff0c;浮毛无处不在&#xff1a;沙发、外套、坐垫&#xff0c;甚至连…

学习008-02-04-08 Localize UI Elements(本地化UI元素)

Localize UI Elements&#xff08;本地化UI元素&#xff09; This lesson explains how to localize an XAF application. It describes how to translate UI elements into German and create a multi-language application. 本课介绍如何本地化XAF应用程序。它描述了如何将U…

【C语言】在限制定条件下数据移动

C语言 在限制定条件下数据移动 给定一个数组 nums&#xff0c;编写一个函数将所有0移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意&#xff0c;必须在不复制数组的情况下原地对数组进行操作。 作业题 解决思路及代码 要将数组中的所有 0 移动到数组的末…

数学中的连分式、无穷连根式、平方根

连分式 连分式&#xff08;continued fraction&#xff09;由和与倒数的多层嵌套构成&#xff0c;可以是有限的&#xff0c;也可以是无限的。 表达式&#xff1a;或 import mathdef fraction_to_continued_fraction(numerator, denominator, max_terms):"""计算…

WordPress原创插件:搜索引擎抓取首图seo图片

WordPress原创插件&#xff1a;搜索引擎抓取首图seo图片 插件设置 插件将在网站头部添加适当的meta标签&#xff0c;以便百度等搜索引擎抓取指定的固定图像。 插件下载 https://download.csdn.net/download/huayula/89596527

[Meachines] [Easy] Friendzone LFI+Python-OS库污染权限提升

信息收集 IP AddressOpening Ports10.10.10.123TCP:21,22,53,80,139,443,445 $ nmap -p- 10.10.10.123 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Lin…