Linux学习第二十四节-Podman容器
一、容器的概念
容器是由一个或多个与系统其余部分隔离的进程组成的集合。我们可以理解为“集装箱”。
集装箱是打包和装运货物的标准方式。它作为一个箱子进行标记、装载、卸载,以及从一个
位置运输到另一个位置。该容器的内容与其他容器的内容隔离,因此互不影响。
容器的目的:为进程集合提供一个独立的运行环境
而容器是怎么实现的呢:
1.文件系统隔离
(每个容器都具有独立的文件系统,单个容器内对文件系统进行增删改查不会影响到其他容
器)
2.资源隔离
利用 namespace 隔离进程之间的相互可见及通信
使用 Cgroup 限制资源使用率,设置其能够使用的 CPU 以及内存量的大小
加强安全边界的 SElinux 和 seccomp(安全计算模式)
cgroup:用于资源管理控制组
namespace 命名空间
容器与虚拟机在硬件和底层操作系统交互有所不同:
虚拟机:
1. 使多个操作系统能够同时在一个硬件平台上运行。
2. 使用虚拟机监控程序将硬件分为多个虚拟硬件系统,从而允许多个操作系统并行运 行。
3. 需要一个完整的操作系统环境来支持该应用。
容器:
1. 直接在操作系统上运行,从而跨系统上的所有容器共享硬件和操作系统资源。这使
得应用能够保持轻巧,并快速并行运行。
2. 共享相同的操作系统内核,将容器化应用进程与系统的其余进程隔离开,并使用与
该内核兼容的软件。
3. 需要的硬件资源比虚拟机少得多,这也使其能够快速启动和停止并降低存储要求
而相比容器通常提供的对硬件的访问,访问底屋硬件信息的应用可能需要更直接地访问硬
件,这就不合适作为容器运行
docker 与 podman:
docker:开源的应用容器引擎,所欲一种 Linux 容器封装,提供了易用的容器使用接口,
可以让开发这打包应用及依赖包到一个可移植的容器中,在发布到任何流行的机器上,网桥
使用沙箱机制,相互不会有任何接口
缺点:
Docker 需要在你的系统上运行一个守护进程。
Docker 是以 root 身份在你的系统上运行该守护程序。
podman:开源容器管理工具,是一种无守护程序的容器引擎,是用于在 Linux 系统上开发, 管理和运行任何符合 Open Container Initiative(OCI)标准的容器和容器镜像,提供了一个 与 Docker 兼容的命令行前端,该前端可以简单地为 Docker CLI 别名,即“ alias docker = podman”。
Podman 控制下的容器既可以由 root 用户运行,也可以由非特权用户运行,这个是 Podman
与 Docker 最大的差别之一。
不同之处:
1.docker 需要在我们的系统上运行一个守护进程(docker daemon),而 podman 不需要;
2.启动容器的方式不同:
docker cli 命令通过 API 跟 Docker Engine(引擎)交互告诉它我想创建一个container,然后 docker Engine 才会调用 OCI container runtime(runc)来启动一个 container。这代表 container 的 process(进程)不会是 Docker CLI 的 child;
process(子进程),而是 Docker Engine 的 child process。Podman 是直接给 OCI containner runtime(runc)进行交互来创建 container 的,所以 container process 直接是 podman 的 child process。
3.因为 docke 有 docker daemon,所以 docker 启动的容器支持--restart 策略,但是 podman 不支持,如果在 k8s 中就不存在这个问题,我们可以设置 pod 的重启策略,在 系统中我们可以采用编写 systemd 服务来完成自启动4.docker 需要使用 root 用户来创建容器,但是 podman 不需要。
在 redhat 中提供了一组用于管理容器操作的容器工具:
podman: 直接管理容器和容器镜像
skopeo:用于检查,复制,删除和部署镜像
buildah:用于创捷新的容器镜像
容器镜像:将容器运行时所需要的所有文件的集合
在容器主机上,您可以 root 用户或普通非特权用户身份运行容器。
由非特权用户运行的容器称为 rootless 容器。
Rootless 容器更安全,但存在一些限制。
例如, rootless 容器无法通过容器主机的特权端口(低于 1024 的端口)发布其网络服务。
如有必要,您可以 root 用户身份直接运行容器,但如果漏洞允许攻击者破坏容器,这样做会
在一定程度上削弱系统的安全性。
运行一个容器
安装容器管理工具:yum module install container-tools -y
选择容器镜像和注册表的概念
容器注册表是用于存储和检索容器镜像的存储库。
开发人员将容器镜像上传或推送到容器注册表中。
从注册表中将这些容器镜像下载或提取到本地系统,可用于运行容器。
也可以使用第三方镜像的公共注册表,也可使用贵组织控制的私有注册表
红帽通过两个主容器注册表分发认证容器镜像:
registry. redhat.io:适用于基于官方红帽产品的容器。
registry.connect.redhat.com:适用于基于第三方产品的容器
registry.access.redhat.com:旧的注册表
容器命名规则
语法:registry_name/user_name/image_name:tag
registry_name 是存储镜像的注册表的名称,通常是注册表的完全限定域名。
user_name 表示镜像所属的用户和组织
image_name 在用户命名空间必须唯一
tag 标识镜像版本。
举例操作:
①[root@localhost ~]# yum module install container-tools -y #安装 container-tools 模块
②[root@localhost ~]# podman login registry.connect.redhat.com #使用登录容器注册表
Username:
但我们没有账号,暂时不登录
③[root@localhost ~]# podman search rhel7 #搜索镜像
搜索后跟参数:
--no-trunc 表示查看命令描述(全部)
--filter=stars=600 显示点赞数>=600 的
=is-automated=<true|false>显示自动构建的镜像
=is-official=<true|false>仅显示标记为官方的镜像
--limit 限制每个注册表列出的镜像数量
--tls-verify <true|false> 为所有使用的注册表启用和禁用 HTTPS 证书验证。默认
启动(true)
④[root@localhost ~]# podman pull registry.access.redhat.com/rhel7.0:latest #提取镜像
⑤[root@localhost ~]# podman images #列出存储在本地的镜像
⑥[root@localhost ~]# podman run -it --name=rhel7 registry.access.redhat.com/rhel7.0:latest /bin/bash #运行 rhel7 容器
参数理解:
-t == --tty 意思是 pseudo-tty(伪终端)将被分给容器
-i == --interactive 相同。容器接受输入
-d == --detach,表示容器在后台运行(已分离)
--name 设置容器名称。容器名称必须唯一。
如果 podman run 命令不包含容器名称, Podman 将生成唯一的随机名称。
/bin/bash 允许交互
⑦查看正在运行的容器
(
podman ps -a 查看正在运行+历史运行过的容器
podman ps -q 查看正在运行的容器 id
podman ps -s 显示运行容器总文件大小
podman ps -l 显示最近创捷容器
podman ps -n 3 最近创键的 3 个容器
podman ps --no-trunc 显示所有描述
)
[root@localhost ~]# podman ps
[root@localhost ~]# podman run -it registry.access.redhat.com/rhel7.0:latest #我们也可以快速命令,无需交互,使用完后删除容器
[root@example ~]# podman ps
⑧构建一个容器存放在后台
[root@localhost ~]# podman run -itd registry.access.redhat.com/rhel7.0:latest /bin/bash
[root@localhost ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6479495ccbd5 registry.access.redhat.com/rhel7.0:latest /bin/bash 10
seconds ago Up 9 seconds ago compassionate_northcutt
⑨进入后台容器
[root@localhost ~]# podman attach compassionate_northcutt
[root@6479495ccbd5 /]#
缺点:容器终止或者容器退出,容器就会重后台退出
[root@localhost ~]# podman exec -it 6479495ccbd5 /bin/bash
推荐可以使用:不会退出后台容器
二、相关概念
1.容器注册表信息
①[root@localhost /]# cat /etc/containers/registries.conf #获取有关使用容器注册表的信息
$HOME/.config/containers #普通用户容器注册表的信息位置(需要pull镜像后,ssh到普通用户)
②[root@localhost /]# podman info #显示 podman 的配置信息(包括注册表)
2.概念
registries.conf 配置文件说明:
安全性:registries. conf 文件的[registries. insecure]部分中列出了不安全的注册表。 如果注册表被列为不安全,则不会使用 TLS 加密来保护与该注册表的连接。如果注册表既可搜索又不安全则会同时在[registries.search]和[registries.insecure]中列出。可将容器注册表配置为需要身份验证。如前所述,可使用 podman login 命令登录需要身份验证的容器注册表。
3.检查容器镜像
①[root@localhost /]# skopeo inspect docker://registry.access.redhat.com/quarkus/mandrel-20-rhel8
#令检查注册表中的远程容器镜像,无需将镜像提取到本地系统
②[root@localhost ~]# podman images #查看本地存储的镜像信息
4.移除本地容器镜像和容器
①[root@localhost ~]# podman images #查看本地存储的镜像信息
②[root@example ~]# podman rmi registry.access.redhat.com/rhel7.0 #移除本地容器镜像
③[root@example ~]# podman rmi -f registry.access.redhat.com/rhel7.0 #强制移除本地容器镜像
④#删除多个镜像间以空格间隔
⑤删除一个容器:podman rm 名称或 id 删除多个:podman rm -f $(podman ps -a -q)
三、管理容器即服务(重点)
1.相关说明了解
①初级概念:
在将数据库或 Web 服务器等服务部署为容器时,通常希望这些容器在服务器启动时自动启动,所以我们将容器作为 systemd 服务启动和停止,并检查其状态。(systemd 服务取代 了 initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程)
②systemd 管理系统服务:
通过 rootless 容器创捷 systemd 用户单元文件,可以使用 systemctl 来管理。若容器
在 rootless 模式中运行,则可以从非特权用户帐户管理这些服务,以提高安全性。
③systemd 管理用户服务:
借助 systemd 用户服务,用户可以为自己的服务创建单元文件,并使用 systemct1 命令管理这些服务,无需 root 访问权限。
④技术说明:
普通用户原状态情况:当您将用户服务作为非 root 用户启用时, 该服务会在您通过文本或图形控制台或使用 SSH 打开第一个会话时自动启动。当您关闭最后一个会话时,服务停止。此行为与系统服务有所不同,系统服务是在系统启动时启动,在系统关闭时停止;
现在可以实现手段:可以通过 loginct1 enable-linger/disable-linger 来改变启用/禁止用户逗留(相当于保持登录状态)。 若没有指定就是当前用户,如果指定了用户名或 UID, 那么系统将会在启动时自动为这些 用户派生出用户管理器, 并且在用户登出后继续保持运行。
允许未登录的用户在后台运行持续时间很长的服务。
⑤(loginctl — 控制 systemd 登录管理器:
http://www.jinbuguo.com/systemd/loginctl.html)
2.创建和管理 systemd 用户服务说明
①#查看 username 当前各项属性值
loginct1 show-user username
②创建和管理 systemd 用户服务相关说明
定义 systemd 用户服务,在-/.config/systemd/user/目录来下创建服务文件。
使用 systemct1 --user 命令来控制,但必须在控制台登录或直接通过 ssh 登录。sudo
和 su 不起作用。
systemctl 守护进程会与 systemctl --user 进程交互。仅当用户首次从控制台或 ssh
登录时,系统才会启动该进程。
3.podman 生成 systemd 文件有两种方式:
①生成的容器,在开机时服务启动的时候启动容器,关机时停止它。
②每次服务启动的时候创建并运行容器,在停止服务时删除容器.。
[root@example ~]# podman --version #版本
podman version 1.6.4 #1.6.4 版本不支持--new 参数
4.案例:
创捷 systemd 单元文件
1)创建用户 contsvc
[root@localhost /]# useradd contsvc
[root@localhost /]# passwd contsvc
2)登录 contsvc 用户,搜索 httpd 镜像
[root@localhost /]# ssh contsvc@127.0.0.1
[contsvc@localhost ~]$ podman search httpd
3)创建 webcontent/html 网页文件
[contsvc@localhost ~]$ mkdir -p ~/webcontent/html
[contsvc@localhost ~]$ echo "hello world" > webcontent/html/index.html
4)确定权限
[contsvc@localhost ~]$ ls -ld webcontent/html/
[contsvc@localhost ~]$ ls -l webcontent/html/index.html
5)拉取 httpd 到公共镜像
[contsvc@localhost ~]$ podman pull
registry.access.redhat.com/rhscl/httpd-24-rhel7:latest
6)创建容器
[contsvc@localhost ~]$ podman run -itd --name myweb -p 8080:8080 -v
~/webcontent:/var/www:Z
registry.access.redhat.com/rhscl/httpd-24-rhel7:latest
7)验证
[contsvc@localhost ~]$ curl http://127.0.0.1:8080
hello world
8)创建目录
[contsvc@localhost ~]$ mkdir -p .config/systemd/user
9)创建 systemd 单元文件
[contsvc@localhost ~]$ cd .config/systemd/user/
[contsvc@localhost user]$ podman generate systemd --name myweb --files --new /home/contsvc/.config/systemd/user/container-myweb.service
(在原有的文件名称前加了 container)
在 1.6.4 中没有--new 选项:生成系统化的单位文件,这些文件在服务启动和停止命令处创建和删除容器。此类单位文件不绑定到单个计算机,可以轻松地在其他计算机上共享和使用。
10)停止删除原本的 http 容器
[contsvc@localhost user]$ podman stop myweb
若没有--new 参数不需要删除容器
[contsvc@localhost user]$ podman rm myweb
11)强制 systemd 重启加载配置
[contsvc@localhost user]$ systemctl --user daemon-reload
[contsvc@localhost user]$ podman ps -a
[contsvc@localhost user]$ podman ps
12)启动并启用 container-myweb 服务
[contsvc@localhost user]$ loginctl enable-linger
[contsvc@localhost user]$ systemctl --user enable --now container-myweb.service
13)验证
[contsvc@localhost user]$ systemctl --user status container-myweb.service #active
[contsvc@localhost user]$ curl http://localhost:8080
hello world
14)验证重启也自启
[contsvc@localhost user]$ su -
[root@localhost ~]# reboot
[root@localhost ~]# curl http://127.0.0.1:8080
hello world!
[root@localhost ~]# ssh contsvc@127.0.0.1
相关文章:
Linux学习第二十四节-Podman容器
一、容器的概念 容器是由一个或多个与系统其余部分隔离的进程组成的集合。我们可以理解为“集装箱”。 集装箱是打包和装运货物的标准方式。它作为一个箱子进行标记、装载、卸载,以及从一个 位置运输到另一个位置。该容器的内容与其他容器的内容隔离,…...
基于quartz实现定时任务管理系统
基于quartz实现定时任务管理系统 背景 说起定时任务框架,首先想到的是Quartz。这是定时任务的老牌框架了,它的优缺点都很明显。借助PowerJob 的readme文档的内容简单带过一下这部分。 除了上面提到,还有elastic-job-lite、quartzui也是相当…...
vue-element-admin:基于element-ui 的一套后台管理系统集成方案
文章目录一、vue-element-admin1、vue-element-admin1.1简介1.2安装2、vue-admin-template2.1简介2.2安装一、vue-element-admin 1、vue-element-admin 1.1简介 vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 GitHub地址:https://github.com…...
KVM-7、KVM 虚拟机创建的几种方式
通过对 qemu-kvm、libvirt 的学习,总结三种创建虚拟机的方式: (1)通过 qemu-kvm 创建 (2)通过 virt-install 创建 (3)通过 virt-manager 创建 在使用这三种创建虚拟机前提是 宿主机必须支持 cpu 的硬件虚拟化技术(Intel 是 vmx,AMD 是svm),通过下面方式进行查看…...
Hadoop三大框架之HDFS
一、概述HDFS产生的背景及定义HDFS产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,需要一种系统来管理多台机器上的文件,这就是分布式文件…...
好好的系统,为什么要分库分表?
不急于上手实战 ShardingSphere 框架,先来复习下分库分表的基础概念,技术名词大多晦涩难懂,不要死记硬背理解最重要,当你捅破那层窗户纸,发现其实它也就那么回事。 什么是分库分表 分库分表是在海量数据下࿰…...
多种调度模式下的光储电站经济性最优储能容量配置分析(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
二分法(适用于任何题型!!!)
今天看二分法看了一天,看吐了,现在讲讲怎么做类题。 只讲两种做法(实则是可合并为一种),任何题型都可以转化为这种做法!!!是任何! 首先,设置 int left,righ…...
js常见的七种继承及实现
在 JavaScript 中,常见的继承方式有以下七种:大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库1. 原型链继承原型链继承是 JavaScript 中一种基于原型的继承方式&#…...
案例分析之——理由Mybatis动态SQL实现复用
无复用思想的做法: 在没有复用思想的时候,就只顾着实现功能。比如开发过程中涉及到两个表的更新功能,每需要更新一处,就写一个接口,结果出现了写了11个接口的情况。 这样虽然功能实现了,可是可能自…...
MCM 箱模型建模方法及大气 O3 来源解析实用干货
OBM 箱模型可用于模拟光化学污染的发生、演变过程,研究臭氧的生成机制和进行敏感性分析,探讨前体物的排放对光化学污染的影响。箱模型通常由化学机理、物理过程、初始条件、输入和输出模块构成,化学机理是其核心部分。MCM (Master Chemical M…...
【独家】华为OD机试 - 最长连续交替方波信号(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...
代码随想录算法训练营第二十一天打卡 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
打卡第21天,继续二叉树,前几天终于补完了,感觉难度上来了。 今日任务 530.二叉搜索树的最小绝对差501.二叉搜索树中的众数 二叉树的最近公共祖先 530.二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中任意两不…...
免费下载丨一看即会,Serverless 技术进阶必读百宝书
过去一年,全球正在加速推进云计算的 Serverless 化进程。Serverless 架构已经逐渐从“被接受”走向了“被学习”和“被应用”。云的产品体系正在 Serverless 化,从计算、存储、数据库到中间件,越来越多的云产品采用了 Serverless 模式。服务器…...
SQL语句的加锁方式 - Mysql 锁机制
SQL语句的加锁方式 - Mysql锁机制 SELECT ... FROM SELECT ... FOR UPDATE / SELECT ... FOR SHARED MODE SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE UPDATE ... WHERE ... DELETE FROM ... WHERE ... INSERT INSERT ... ON DUPLICATE KEY UPDATE REPLACE Mysql锁机…...
C#开发的OpenRA的游戏主界面怎么样创建4
继续游戏主界面创建的主题, 前面已经说到怎么样找到mainmenu.yaml来显示主界面,也说了怎么样找到各个子控件类。 现在就来仔细分析一下,主界面每一部分的功能。 比如下面这个区域的界面是怎么样创建: 要创建这一小部分的界面显示,也是需要做很多的工作。 因为在这里所有UI…...
覆盖5大主流开发平台的报表控件,它值得你一看
为什么大家现在都在使用第三方报表工具呢? 第三方报表工具是数据库存储,数据库程序通常可以存放的数据量是相当大的,可以处理非常复杂的数据结构关系,报表数据交互速度也非常快。不仅能够提高开发效率,还能实现灵活美…...
【冲刺蓝桥杯的最后30天】day4
大家好😃,我是想要慢慢变得优秀的向阳🌞同学👨💻,断更了整整一年,又开始恢复CSDN更新,从今天开始更新备战蓝桥30天系列,一共30天,如果对你有帮助或者正在备…...
spring boot actuator 动态修改日志级别
1 日志级别 Spring Boot Actuator包括在运行时查看和配置应用程序日志级别的功能。您可以查看整个列表,也可以查看单个记录器的配置,该配置由显式配置的日志级别和日志框架给出的有效日志级别组成。这些级别可以是: TRACEDEBUGINFOWARNERRORFATALOFFnu…...
兴达易控Modbus转Profinet网关连接1200Profinet转modbus接三菱A800变频器案例
下面介绍A800 变频器通过兴达易控modbus转profinet网关,使1200plc无需编程实现Profinet转modbus协议转换,把modbus变频器轻松组网 网络拓扑如下图 打开博图组态加载GSD文件,modbus转profinet网关从站接口接入到1200PLC上 配置modbus转profine…...
「SAP ABAP」OPEN SQL(四)【FROM语句】
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…...
一文吃透 SpringMVC 中的转发和重定向
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
Hbase操作命令
目录 创建表,表中有两个列族 baseinfo, schoolinfo 查看指定表全名空间中的表 查看表描述 禁用/启用 查看是否启用/禁用 删除表 注意,首先要将删除的表设置为禁用状态才可以删除,否则会报错 新增列族 删除列族 更改列族存储版本的限制 增…...
1>LINK : fatal error LNK1104: cannot open file ‘libconvtname.obj‘
我自己最后找到问题原因是: 引用的库名称没有.lib,只有libconvtname。 改成完整的libconvtname.lib即可。 以下是chatGPT的回答 The error message "fatal error LNK1104: cannot open file libconvtname.obj" usually occurs when Visual S…...
数据结构——链表OJ题目讲解(1)
作者:几冬雪来 时间:2023年3月7日 内容:数据结构链表OJ题目讲解 题目来源:力扣和牛客 目录 前言: 刷题: 1.移出链表元素: 2.链表的中间结点: 3. 链表中倒数第k个结点࿱…...
LeetCode_二分搜索_困难_154.寻找旋转排序数组中的最小值 II
目录1.题目2.思路3.代码实现(Java)1.题目 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到: 若旋转 4…...
面向对象设计模式:创建型模式之建造者模式
一、引入 Build:建造和构建具有建筑结构的大型物体 建楼:打牢地基、搭建框架、然后自下而上一层层盖起来。构建物体:通常需要先建造组成这个物体的各个部分,然后分阶段把它们组装起来 二、建造者模式 2.1 Intent 意图 Separate…...
集成学习boosting、bagging、stacking
目录 一、介绍 二、三种架构学习 (1)boosting (2)bagging (3)stacking 一、介绍: 对于单个模型来说很难拟合复杂的数,模型的抗干扰能力较低,所以我们希望可以集成多…...
数据模型(上):模型分类和模型组成
1.模型分类 数据模型是一种由符号、文本组成的集合,用以准确表达信息景观,达到有效交流、沟通的目的。数据建模者要求能与来自不同部门,具有不同技术背景,不同业务经验,不同技术水平的人员交流、沟通。数据建模者要了解每个人员的观点,并通过反馈证明理解无误,最终作…...
郑州轻工业大学2022-2023(2) 数据结构题目集 - ZZULI
6-1 线性表元素的区间删除 6-1 线性表元素的区间删除 分数 20 全屏浏览题目 切换布局 作者 DS课程组 单位 浙江大学 给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变…...
网站建设专题页/b2b采购平台
问题: swiper数量达到大约400时候会出现明显滑动卡顿,渲染慢的问题,达到1000时候需要几十秒时间,或者可能导致渲染失败。 解决方案: 配置circular"true"属性开启衔接滑动,即播放到末尾后重新回到…...
网站维护页面源码/百度竞价推广的技巧
tomcat的安全策略文件 Catalina.policy 当tomcat 运行未知的web应用时,为了防止java代码对服务器系统产生安全影响。比如删除系统文件,重启系统等。需要对java 代码进行安全控制。这时候就要配置这个文件。更加详细资料可以自行学习java 安全管理器 Secu…...
wordpress 免登陆接口/百度广告标识
NATType类型说明 (3条消息) [NatType]路由器四种NAT(Full Cone NAT/Restricted Cone NAT/Port Restricted Cone NAT/Symmetric NAT)类型说明_wellnw的博客-CSDN博客_nat type 高通QCAMP ./apps_proc/data/mobileap/ipc/qualcomm_mobile_access_point_msgr_v01.h typedef …...
Vps wordpress https/百度网站推广费用多少
一、什么是JAVA的消息服务 上文中我们提到Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持JAVA应用程序开发。在J2EE中,当两个应用程序…...
网站整体风格设计/一个关键词要刷多久
工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一同学习一下引用指针 函数是C/C程序的基本功能单元,其重要性不言而喻。函数设计的纤细缺点很容易致使该函数被错用,所以光使函数的功能正确是不敷的。本章重点论述…...
做网站一般什么问题/百度seo优化公司
计算机基础课程教学与学习模式的研究大学计算机基础教学反思浅谈大学计算机基础课程教学计算思维是计算机技术发展的必然结果。随着电子信息时代的发展,计算思维逐渐被应用于方方面面。大学阶段,计算机基础课程是一项培养学生计算机操作能大学计算机基础…...