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

2023 年最新 Docker 容器技术基础详细教程(更新中)

Docker 基本概述

Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

在这里插入图片描述

Docker 官网:https://www.docker.com

Docker 有助于更快地交付应用,它可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker 可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。

Docker 中的隔离机制是如何实现的?

Docker 主要借助 Linux 内核技术 Namespace 来实现隔离。Namespace 是 Linux 内核的一种功能,它能够将进程及其相关的资源(如文件系统、网络等)隔离在一个独立的、互不干扰的环境中,使得每个进程都有其独立的视角。

Namespace 应用方面

PID命名空间:这是隔离进程的关键,它使得每个容器都有其独立的进程空间,无法影响其他容器或主机的进程。

文件系统命名空间:这是用来隔离文件系统的。每个容器都有其独立的文件系统,包括 /dev、/proc、/bin、/etc、/lib、/usr 等目录,这些都是容器启动时由宿主机提供的。Docker 使用的是 overlay 或 overlay2 存储驱动,它将不同容器的文件系统叠加在一起,但每个容器都有其独立的视角。

网络命名空间:这是用来隔离网络资源的,每个容器都有其独立的网络环境,包括 IP 地址、端口等。

用户命名空间:这是用来隔离用户和权限的,每个容器都有其独立的安全上下文,包括用户、密码、权限等。

总的来说,Docker通过使用Linux Namespace和相关的技术,为容器提供了隔离后的执行环境,使得每个容器都有其独立的视角和资源。

Docker 基本概念

镜像(image):一个只读的模板,可以用来创建 Docker 容器。类似于 Student 类。容器(Container):容器是镜像创建的运行实例。容器是镜像运行时的实体,为镜像提供了一个标准的和隔离的运行环境。它可以被启动、停止、删除,每个容器之间都是隔离的。类似于 stu 实例对象。仓库(repository):存放镜像文件的地方。比如 maven 仓库是存放 jar 包的地方。

Windows 安装 Docker

首先进行下载 windows 版本的 installer 安装包

在这里插入图片描述

安装完成提示:You must restart Windows to complete installation.

在这里插入图片描述

初次启动 Docker Desktop 时,您可能需要登录到 Docker Hub https://hub.docker.com/ 的帐户。特别注意:和 Docker 官网不同,注册页面在国内访问需要加速器。

环境问题

在这里插入图片描述

解决方案:更新 wsl

C:\Users\Administrator>wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。

Windows Subsystem for Linux(WSL)是一个在 Windows 10 上能够运行原生 Linux 二进制可执行文件的兼容层。它是由微软和 Canonical 公司合作开发,其目标是使纯正的 Ubuntu、Debian 等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。如果使用 Windows 10 2004 以上,可以通过 WSL 2 来窗口化运行桌面应用,也不需要另外安装其他的 X 服务器。

在这里插入图片描述

Welcome-To-Docker

当你成功安装 docker 后会发现有自带的容器 welcome-to-docker(展示如下)

在这里插入图片描述

Container 容器暴露的端口 Port 是 80,映射到 windows 的端口是 8088

在这里插入图片描述

配置 Docker 镜像

“registry-mirrors” 是 Docker 的一个配置项,它的中文意思是“注册表镜”。这个配置项主要被用来修改 Docker 在启动过程中加载的镜像。当 Docker 启动时,它会自动从 Docker Hub 上拉取镜像来使用。通过使用 “registry-mirrors”,你可以指定一个或多个镜像存储库作为拉取镜像的镜像源,以替代默认的 Docker Hub。这样可以提高拉取镜像的速度,并且可以在网络连接不好的情况下使用缓存的镜像。需要注意的是,如果使用registry-mirrors,需要在启动 Docker 时加上 --registry-mirror 参数,例如 “docker -d --registry-mirror=http://<your-mirror-domain>”

在这里插入图片描述

"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://cr.console.aliyun.com","https://mirror.ccs.tencentyun.com"
]  

Docker 组成

在这里插入图片描述

Kubernetes 基本概述

首先介绍下 Kubernetes,它是一个开源的容器集群管理系统,它用于在多个主机上自动化部署、维护和扩展容器化的应用。Kubernetes 的目标是简化和高效地实现容器化的应用部署,它提供了应用部署、规划、更新和维护的一种机制。

Kubernetes 系统有什么样的应用场景?

自动化容器部署:Kubernetes可以自动化容器的部署、管理和扩展,从而使应用程序能够更快速、高效地运行。
水平扩展和自动负载均衡:Kubernetes可以自动扩展容器实例的数量,并使用负载均衡器将流量分配到这些实例之间,以实现高可用性和更好的性能。
无缝的应用程序更新:Kubernetes可以实现滚动更新,从而在不中断应用程序服务的情况下更新应用程序版本。
弹性伸缩:Kubernetes可以根据需要自动伸缩应用程序,以应对峰值流量或负载波动。
容器存储管理:Kubernetes可以管理容器的存储需求,从而帮助应用程序访问数据存储。
跨云平台应用程序部署:Kubernetes可以在多个云平台之间轻松部署和管理应用程序,从而帮助企业实现多云策略。

Docker CMD

Common Commands

run         Create and run a new container from an image
exec        Execute a command in a running container
ps          List containers
build       Build an image from a Dockerfile
pull        Download an image from a registry
push        Upload an image to a registry
images      List images
login       Log in to a registry
logout      Log out from a registry
search      Search Docker Hub for images
version     Show the Docker version information
info        Display system-wide information

Commands

attach      Attach local standard input, output, and error streams to a running container
commit      Create a new image from a container's changes
cp          Copy files/folders between a container and the local filesystem
create      Create a new container
diff        Inspect changes to files or directories on a container's filesystem
events      Get real time events from the server
export      Export a container's filesystem as a tar archive
history     Show the history of an image
import      Import the contents from a tarball to create a filesystem image
inspect     Return low-level information on Docker objects
kill        Kill one or more running containers
load        Load an image from a tar archive or STDIN
logs        Fetch the logs of a container
pause       Pause all processes within one or more containers
port        List port mappings or a specific mapping for the container
rename      Rename a container
restart     Restart one or more containers
rm          Remove one or more containers
rmi         Remove one or more images
save        Save one or more images to a tar archive (streamed to STDOUT by default)
start       Start one or more stopped containers
stats       Display a live stream of container(s) resource usage statistics
stop        Stop one or more running containers
tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top         Display the running processes of a container

Docker 安装 Redis

Docker 官方镜像仓库 Redis:https://hub.docker.com/

C:\Users\Administrator>docker run -d -p 6379:6379 --name redis redis:latest
Unable to find image 'redis:latest' locally
latest: Pulling from library/redis
360eba32fa65: Pull complete
64b323c8825b: Pull complete
383536099eae: Pull complete
e3f0c12dcc8e: Pull complete
2d2142a35b4d: Pull complete
b4cada01e6a7: Pull complete
Digest: sha256:f92a0be0ba8c085e6a5e2d2bea386365443485bcd67ced5ca8ddcdacdd4656d2
Status: Downloaded newer image for redis:latest
14598998f360e144a95f985ceca7af77d0a27941eb46e2a73d5c798ce4a04430

在 Docker Desktop Container 查看已经运行的 redis 容器

在这里插入图片描述
测试 Redis 数据库

在这里插入图片描述

选择 Exec 打开 / Open in external terminal⁠ 开启终端

# redis-cli
127.0.0.1:6379> set name 'wrist'
OK
127.0.0.1:6379> get name
"wrist"

Docker 安装 WordPress

WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以将其作为内容管理系统(CMS)来使用。WordPress 是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客。

WordPress 拥有成千上万个各式插件和不计其数的主题模板样式,同时还有许多第三方开发的免费模板,安装方式简单易用。WordPress 官方支持中文版,同时有爱好者开发的第三方中文语言包,如 wopus 中文语言包。使用 WordPress 可以快速搭建独立的 Blog 网站,而且它不仅仅是一个 blog 程序,也是一个优秀的小型 CMS,很多非 blog 网站也是用 WordPress 搭建的。它的功能包括文章发布、分类、归档,提供文章、评论、分类等多种形式的 RSS 聚合,链接的添加、归类功能,评论的管理,垃圾信息过滤功能等。

Docker Compose

Docker Compose 是一个工具,可以用于在单个主机上编排多个 Docker 容器。它允许您通过一个 YAML 文件来定义应用程序的服务、配置和环境,并将其作为一个整体进行管理。使用 Docker Compose,您可以轻松地定义和运行多个容器,并使这些容器能够相互通信和协调。它是在开发和生产环境中使用 Docker 容器的一种高效方式。

C:\Users\Administrator\Desktop\HackerWaking>docker-compose up -d
no configuration file provided: not found

需要 configuration file 就是 docker-compose.yml 配置文件

docker-compose.yml

version: '3.1'services:wordpress:image: wordpressrestart: alwaysports:- 8080:80environment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: exampleuserWORDPRESS_DB_PASSWORD: examplepassWORDPRESS_DB_NAME: exampledbvolumes:- wordpress:/var/www/htmldb:image: mysql:5.7restart: alwaysenvironment:MYSQL_DATABASE: exampledbMYSQL_USER: exampleuserMYSQL_PASSWORD: examplepassMYSQL_RANDOM_ROOT_PASSWORD: '1'volumes:- db:/var/lib/mysqlvolumes:wordpress:db:

在 docker-compose.yml 配置文件所在的目录开启 cmd terminal 终端进行执行 docker-compose

C:\Users\Administrator\Desktop\HackerWaking>docker-compose up -d

容器名称就是目录名称

在这里插入图片描述

打开 wordpress 页面

在这里插入图片描述

配置 Dockerfile

Dockerfile 是 Docker 用来创建 Docker 镜像的文本文件。Dockerfile 由一系列的命令和参数构成,这些命令应用于基础镜像并最终创建一个新的镜像。他们自动化了 Docker 应用程序镜像的构建过程。

Dockerfile 基本结构

FROM:这是 Dockerfile 中的第一条指令,指定一个基础镜像作为后续所有指令的基础。
RUN:在镜像上运行命令。
WORKDIR:设置工作目录。
COPY:复制文件。
ADD:更高级的复制文件。
ENV:设置环境变量。
EXPOSE:声明端口。
CMD:提供默认的执行参数。
ENTRYPOINT:设置容器启动时运行的命令。
ONBUILD:当构建一个被继承的 Dockerfile 时运行命令。
LABEL:添加元数据到镜像。
STOPSIGNAL:设置停止容器的信号。
HEALTHCHECK:设置健康检查。
SHELL:设置默认 shell。

保存 Docker 镜像

docker save 命令用于将指定的 Docker 镜像保存为 tar 归档文件。若没有指定路径信息,导出目录就是当前 Bash 目录。

docker save --helpUsage:  docker save [OPTIONS] IMAGE [IMAGE...]Save one or more images to a tar archive (streamed to STDOUT by default)Aliases:docker image save, docker saveOptions:-o, --output string   Write to a file, instead of STDOUT

制作 Docker 镜像

Flask app.py 简单案例

from flask import Flask
import os
from dotenv import load_dotenv
load_dotenv()app = Flask(__name__)@app.route("/")
def indexPage():return "hello world"if __name__ == "__main__":app.run(host=os.getenv("HOST"), port=os.getenv("PORT"))

环境变量 .env 配置文件

HOST=0.0.0.0
PORT=8080

requirements.txt 包版本控制

requirements.txt 是一个用于指定 Python 项目依赖的文件。在 requirements.txt 文件中,您可以列出项目所需的所有依赖包及其对应的版本。这样,您可以轻松地与他人共享项目,并确保他们在安装依赖时获得与您相同的版本。

使用 pip freeze > requirements.txt 命令将当前环境中已安装的依赖包及其版本导出到 requirements.txt 文件中。这将帮助您轻松地创建一个 requirements.txt 文件,以便与他人共享您的项目。

Flask~=2.2.2
python-dotenv~=0.21.0

Dockerfile 镜像配置文件

FROM python:3.8WORKDIR /appADD . /appRUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simpleEXPOSE 8080CMD ["python", "app.py"]

制作 Docker 镜像

PS E:\docker-flask> docker build -f Dockerfile -t flask-test:1.0.0
ERROR: "docker buildx build" requires exactly 1 argument.
See 'docker buildx build --help'.

解决方案 Bash:docker buildx build . -t flask-test:1.0.0

在这里插入图片描述

CMD 运行镜像(推荐)

docker run -p 8080:8080 flask-test:1.0.0

Docker Desktop 运行镜像
在这里插入图片描述

Centos 安装 Docker

CentOS 基本概述

CentOS 是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。

Yum 基本概述

Yum(Yellowdog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器,基于 RPM 包管理,能够自动处理依赖性关系,并且可以自动查找包的依赖性关系。

安装软件包:yum install package_name
更新软件包:yum update package_name
卸载软件包:yum remove package_name
搜索软件包:yum search package_name
列出已安装的软件包:yum list installed
列出所有可用的软件包:yum list all
清除Yum缓存:yum clean cache

检查更新 yum

sudo yum update

安装 yum-utils 软件包(用于处理仓库和依赖关系)

sudo yum install -y yum-utils

启用 Docker

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker

sudo yum install docker-ce docker-ce-cli containerd.io

查看 Docker 版本

[root@VM-4-17-centos ~]# docker --version
Docker version 24.0.6, build ed223bc

Centos 运行镜像

docker load -i tar包 名称

[root@VM-4-17-centos docker]# docker images 
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

遇到的问题是 Docker daemon 没有运行,这导致你不能与 Docker daemon 进行交互。首先,你需要确定 Docker daemon 是否正在运行。通过运行下面的命令 sudo systemctl status docker 来检查 Docker daemon 的状态。如果 Docker daemon 没有运行,你会看到类似 “inactive (dead)” 的消息。

运行 Docker daemon

sudo systemctl start docker

拉取镜像 / 上传镜像

在这里插入图片描述

加载 镜像 tar 归档文件

docker load -i flask-test.tar

docker load

[root@VM-4-17-centos docker]# docker load --helpUsage:  docker load [OPTIONS]Load an image from a tar archive or STDINAliases:docker image load, docker loadOptions:-i, --input string   Read from tar archive file, instead of STDIN-q, --quiet          Suppress the load output

查看镜像

[root@VM-4-17-cdocker images 
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
flask-test   1.0.0     2cace70f5bb6   3 hours ago   1.01GB

Shell 运行镜像(推荐)

[root@VM-4-17-centos docker]# docker run -p -d 8080:8080 flask-test:1.0.0
[root@VM-4-17-centos docker]# 2a8b3febd9d82718541d9292332c90200c4b3ce0d6a0f6f5ec5ee5867d368fe7

background task 后台运行?docker run --help 查看

-d, --detach                         Run container in background and print container ID

常见问题:端口冲突

[root@VM-4-17-centos docker]# docker run -p 8080:8080 flask-test:1.0.0 --name flask-project
docker: Error response from daemon: driver failed programming external connectivity on endpoint strange_merkle (40bb0c551f08c91dabdabea1d11f8b165995408702a79462f2313cbca30f45c8): Error starting userland proxy: listen tcp4 0.0.0.0:8080: bind: address already in use.
ERRO[0000] error waiting for container:  

在 Linux 上使用 netstat 命令或 lsof 命令来查看指定端口的进程:

使用 netstat

sudo netstat -tuln | grep 8080

使用 lsof

sudo lsof -i :8080

这两个命令都需要使用 root 权限(使用sudo)。它们将显示监听或连接到 8080 端口的进程的详细信息,包括进程 ID(PID)、用户、进程名等。

lsof 是一个用于列出当前系统打开文件的实用程序。通过使用不同的参数,lsof 可以提供有关文件、进程、用户和目录的丰富信息。

查看正在运行的 container 容器

docker ps

在这里插入图片描述

docker ps 命令将返回所有正在运行的容器的列表,包括其 ID、名称、镜像、运行时间、状态等信息。

测试结果 访问:服务器 IP:8080 => hello world 成功!!!!

相关文章:

2023 年最新 Docker 容器技术基础详细教程(更新中)

Docker 基本概述 Docker 是一个开源的应用容器引擎&#xff0c;它让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的 Linux 或 Windows 操作系统的机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间…...

初学phar反序列化

以下内容参考大佬博客&#xff1a;PHP Phar反序列化浅学习 - 跳跳糖 首先了解phar是什么东东 Phar是PHP的压缩文档&#xff0c;是PHP中类似于JAR的一种打包文件。它可以把多个文件存放至同一个文件中&#xff0c;无需解压&#xff0c;PHP就可以进行访问并执行内部语句。 默认开…...

嵌入式web项目框架解读

文章目录 前言一、阅读Makefile可以迅速了解整个项目框架二、项目框架中的服务器&#xff1a;boa三、接口&#xff1a;cgi四、项目文件总结 前言 项目框架敬上&#xff01;&#xff01;&#xff01; 一、阅读Makefile可以迅速了解整个项目框架 项目中的Makefile主要分为三个部…...

MySQL什么情况下会死锁,发生了死锁怎么处理呢?

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…...

数字孪生行业相关政策梳理--智慧水利领域相关政策(可下载)

自2021年国家“十四五”规划纲要提出“探索建设数字孪生城市”以来&#xff0c;国家发展和改革委员会、工业和信息化部、住房和城乡建设部、水利部、农业农村部等部门纷纷出台政策&#xff0c;大力推动数字孪生在千行百业的落地发展。这些政策不仅为数字孪生的应用提供了广阔的…...

SQL plus简单使用

查看Oracle数据库全部数据库 数据库名称 SELECT name FROM v$database;这将返回所有数据库的名称。 视图 通过SQL查询dba_registry视图&#xff1a; 另一个查看数据库的方法是查询dba_registry视图&#xff0c;该视图包含了数据库中安装的所有组件的信息。以下是示例SQL查询…...

pnpm入门教程

一、概述 1、更小 使用 npm 时&#xff0c;依赖每次被不同的项目使用&#xff0c;都会重复安装一次。 而在使用 pnpm 时&#xff0c;依赖会被存储在内容可寻址的存储中。 2、更快 依赖解析。 仓库中没有的依赖都被识别并获取到仓库。目录结构计算。 node_modules 目录结构是…...

JADE盲分离算法仿真

JADE算法原理 JADE 算法首先通过去均值预白化等预处理过程得到解相关的混合信号&#xff0c;预处理后的信号构建的协方差矩阵变为单位阵&#xff0c;为后续的联合对角化奠定基础&#xff1b;其次&#xff0c;通过建立四阶累积量矩阵&#xff0c;利用高阶累积量的统计独立性等性…...

CMake教程-第 1 步:基本起点

CMake教程-第 1 步&#xff1a;基本起点 1 CMake教程介绍2 学习步骤Step 1: A Basic Starting PointStep 2: Adding a LibraryStep 3: Adding Usage Requirements for a LibraryStep 4: Adding Generator ExpressionsStep 5: Installing and TestingStep 6: Adding Support for…...

Linux 或者 Docker 容器通过 date 设置系统时间

目录 1. Linux2. Docker 容器2.1 进入容器内部修改2.2 可能会遇到的问题 1. Linux 要在Linux系统中设置日期和时间&#xff0c;可以使用date命令。 使用以下命令格式来设置日期和时间&#xff1a; sudo date -s "YYYY-MM-DD HH:MM:SS"其中&#xff0c;YYYY表示年份…...

Docker 容器中运行 Kibana

Kibana 的 Docker 镜像可以从 Elastic 官网上的 Docker 镜像仓库获取。该镜像是随 X-Pack 一起打包的。 X-Pack 在这个 image 中是预装好的。安装了 X-Pack&#xff0c;Kibana 会去连接同样带有 X-Pack 的 Elasticsearch 集群。 获取镜像 向 Elastic Docker 仓库发送一条 do…...

【23种设计模式】建造者模式【⭐⭐⭐】

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…...

进阶指针(一)

✨博客主页&#xff1a;小钱编程成长记 &#x1f388;博客专栏&#xff1a;进阶C语言 进阶指针&#xff08;一&#xff09; 0.回顾初阶指针1.字符指针1.1 相关面试题 2.数组指针3.指针数组3.1 数组指针的定义3.2 &数组名VS数组名3.3 数组指针的使用 4.数组传参和指针传参4.…...

Linux: code: name: void dev_deactivate(struct net_device *dev)

一开始看这个函数&#xff0c;还以为要做&#xff0c;网卡设备的down操作。 后来一看代码&#xff0c;原来这个函数是在net/sched/sch_generic.c 文件里&#xff0c;而且不是要做网络接口的down操作。操作的结果是&#xff1a;deactivate transmissions on several devices&…...

语义分割——灰度图像转伪彩色图像

目录 检验灰度图检验代码 灰度图转伪彩色图代码转换代码使用细则 示例转换结果总结 检验灰度图 制作语义分割数据集或用训练好模型测试图像时&#xff0c;得到的结果是灰度图像&#xff0c;如下&#xff1a; 检验代码 上面图像灰度值不是全是全为0&#xff0c;灰度范围在[0…...

观察级水下机器人使用系列之七机械手臂

本期是观察级水下机器人使用系列的最后一期&#xff0c;主要讲ROV所使用的机械臂。机械臂正式名称为5功能电动机械&#xff0c;型号为BE-500&#xff0c;由法国公司Ocean Innovation System设计的&#xff0c;可代替人工进行水下作业&#xff0c;完成海底样品采集、打捞、设备定…...

char s[]和char *s的区别,数组和指针的,堆和栈指针的一些思考

最近在学习的时候看到一个概念&#xff0c;数组不等价于指针&#xff0c;很合理但又很难理解。 例如char s[]和char *s有什么区别&#xff0c;前者是数组&#xff0c;后者是指针&#xff0c;个人学习成果如下&#xff1a; 1.char s[]和char *s的区别 char s[]&#xff1a; …...

Flutter快速入门学习(二)

目录 Dart介绍 一些Dart的重要概念 Dart语法学习 变量 内建类型 Number String Boolean List Set Map Symbol 函数 参数类型&#xff08;可选参数&#xff0c;必选参数&#xff09; 函数作为另一个函数的参数 匿名函数 运算符 关系运算符 类型判定运算符 赋…...

【Phoenix】phoenix实现每个Primarykey主键保留N版本数据,CDC数据记录为Changelog格式

一、背景&#xff1a; CDC数据中包含了&#xff0c;数据的变更过程。当CDC写入传统数据库最终每一个primary key下会保存一条数据。当然可以使用特殊手段保存多分记录但是显然造成了数据膨胀。 另外数据湖Hudi(0.13.1)是不支持保存所有Changelog其Compaction机制会清除所有旧版…...

阿里云服务器开放的一个新端口,重启防火墙,端口未启动

问题&#xff1a; 阿里云网页开放的一个新端口后&#xff0c;重启防火墙&#xff0c;端口未启动&#xff0c;之前配置的也都停止了。 解决&#xff1a; 原因可能是阿里的服务控制了&#xff0c;只能一个个端口开启了。把新配置新端口也单独启用。 开启80端口指令 firewall-cm…...

【PHPCUSTOM】打包PHP程序为EXE

目录 一、下载PHPCUSTOM 二、PHP网站打包 1、打开PHPCUSTOM 2、配置参数 3、生成exe文件 网上很多PHP程序打包成EXE的文章&#xff0c;但是都不能用&#xff0c;最后找到了PHPCUSTOM&#xff0c;使用PHPCUSTOM可以把PHP程序打包成exe。我们都知道PHP是服务端语言&#xff…...

药品咨询报告合集整理平台打包(一共36597份)【专题推荐】

<医药行业从业者必看>笔者今天分享高价值医药行业报告36500余份的获取/下载方法&#xff0c;报告涵盖了医药细分领域研究报告药品报告&#xff08;所有上市药品&#xff09;医药行业分析报告医药环境观察报告药品市场调研报告药品靶点研究报告医药白皮书&#xff1b;数据…...

数字化管理新革命,AI数字人CEO登场引领变革!

王一博老板乐华娱乐CEO杜华推出了她的双生数字人华华子&#xff0c;专门替自己直播卖货。在没有任何宣传的情况下&#xff0c;仅仅在短短的10分钟直播时间内&#xff0c;观众人数就飙升至30万人&#xff01;同时&#xff0c;“杜华AI华华子直播”更是迅速登上了微博热搜榜。这一…...

FPGA/数字IC(芯海科技2022)面试题 2(解析版)

以下仅为学习参考(非原创)&#xff0c;如有疑惑欢迎评论区指出&#xff01; 一、单选题&#xff08;共20题&#xff0c;每题3分&#xff0c;共60分&#xff09; 1. D触发器&#xff1a;Tsetup3ns&#xff0c;Thold1ns&#xff0c;Tck2q1ns&#xff0c; 该D触发器最大可运行时…...

SpringMVC之JSON数据返回与异常处理机制---全方面讲解

一&#xff0c;JSON数据返回的理解 在Spring MVC中&#xff0c;当需要将数据以JSON格式返回给客户端时&#xff0c;可以使用ResponseBody注解或RestController注解将Controller方法的返回值直接转化为JSON格式并返回。这使得开发者可以方便地将Java对象转换为JSON&#xff0c;并…...

信息化发展53

数据标准化 1 、数据标准化是实现数据共享的基础。 2 、数据标准化的主要内容包括元数据标准化、数据元标准化、数据模式标准化、数据分类与编码标准化和数据标准化管理。 元数据标准化 1 、元数据是关于数据的数据&#xff08; Data About Data &#xff09;。其实质是用于…...

Java学习笔记——字符/字符串

在 Java 语言中&#xff0c;字符串都被设计成「不可变」的类型&#xff0c;即无法直接修改字符串的某一位字符&#xff0c;需要新建一个字符串实现 StringBuilder 字符 字符是用单引号括起来的单个字母&#xff0c;在Java中&#xff0c;表示字符的数据类型为char。一个字符…...

数据结构与算法基础-(1)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 STREAM 深度测评华为云云耀云服务器L实例的内存性能

本文收录在专栏&#xff1a;#云计算入门与实践 - 华为云 专栏中&#xff0c;本系列博文还在更新中 相关华为云云耀云服务器L实例评测文章列表如下&#xff1a; 华为云云耀云服务器L实例评测 | 从零开始&#xff1a;云耀云服务器L实例的全面使用解析指南华为云云耀云服务器L实…...

Windows安装Neo4j

图数据库概述 图数据库是基于图论实现的一种NoSQL数据库&#xff0c;其数据存储结构和数据查询方式都是以图论&#xff08;它以图为研究对象图论中的图是由若干给定的点及连接两点的线所构成的图形&#xff09;为基础的&#xff0c; 图数据库主要用于存储更多的连接数据。 Neo…...

电子商务网站建设网/专业seo网站优化推广排名教程

题意:输入5x5的字符串&#xff0c;输入操作&#xff0c;要求输出完成操作后的字符串。 注意&#xff1a;①输入的操作执行可能会越界&#xff0c;如果越界则按题目要求输出不能完成的语句。 ②除了最后一次的输出外&#xff0c;其他输出均要在后面空一行。 ③操作的最后一个换行…...

四川省住房和城乡建设厅官方网站/杭州新站整站seo

H - 扑克牌 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 128000/64000 KB (Java/Others)Submit StatusProblem Description 一副不含王的扑克牌由52张牌组成&#xff0c;由红桃、黑桃、梅花、方块4组牌组成&#xff0c;每组13张不同的面值。现在给定52张牌中的…...

学习网站开发/网站搭建关键词排名

● centos 7编译高版本内核&#xff1a; linux-3.13.10 过程相对简单&#xff1a; 1. 安装依赖 yum install ncurses-devel 2. 将linux内核解压缩到/usr.src/ 3. make 4. make modules_install 5. make install 6. 重起 转载于:https://www.cnblogs.com/volcanorao/p/6478092.h…...

wordpress自带高亮/百度自媒体怎么注册

泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 class Solution { public:int tribonacci(int n) {//由于n>3的时候才满足Tn3 Tn Tn1 Tn2&#xff0…...

wordpress上传视频大小/站长工具怎么用

一、概述在正常细胞中&#xff0c;磷脂酰丝氨酸只分布在细胞膜脂质双层的内侧&#xff0c;细胞发生凋亡最早期&#xff0c;膜磷脂酰丝氨酸(PS)由脂膜内侧翻向外侧&#xff0c;这一变化早于细胞皱缩、染色质浓缩、DNA片断化和细胞膜的通透性增加等凋亡现象。AnnexinV是一种磷脂结…...

化妆品购物网站排名/成都有实力的seo团队

CodingGo技术社区自由的编程学习平台日志分析 日志分析在web系统中故障排查、性能分析方面有着非常重要的作用。该工具的侧重点不是通常的PV&#xff0c;UV等展示&#xff0c;而是在指定时间段内提供细粒度&#xff08;最小分钟级别&#xff0c;即一分钟内的日志做抽象和汇总&a…...