Docker基本管理与网络以及数据管理

news2024/11/24 16:55:16

目录

  • 一、Docker简介
    • 1、Docker简述
    • 2、什么是容器
    • 3、容器的优点
    • 4、Docker的logo及设计宗旨
    • 5、Docker与虚拟机的区别
    • 6、Docker的2个重要技术
    • 7、Docker三大核心概念
  • 二、Docker的安装及管理
    • 1、安装Docker
    • 2、配置Docker加速器
    • 3、Docker镜像相关基础命令
      • ①搜索镜像
      • ②拉取镜像
      • ③查看镜像
      • ④查看镜像详细信息
      • ⑤ 本地镜像添加新标签
      • ⑥查看docker信息
      • ⑦删除docker镜像
      • ⑧容器导出镜像存储
      • ⑨导入镜像到容器
    • 4、Docker 容器操作
      • ①创建docker容器
      • ②查看docker容器进程
      • ③管理docker容器
      • ④登录docker容器
    • 5、docker run的运行过程
    • 6、docker 容器7个的生命周期
    • 7、docker容器导出导入
    • 8、 删除容器
  • 三、Docker网络
    • 1、host模式
    • 2、container模式
    • 3、none模式
    • 4、bridge模式
    • 5、自定义网络
  • 四、Docker数据管理
    • 1、数据管理类型
    • 2、数据卷
    • 3、数据卷容器
    • 4、端口映射
    • 5、容器的互联


一、Docker简介

1、Docker简述

Docker是一个go语言开发的应用容器引擎,运行容器里的应用。docker是用来管理容器和镜像的一种工具。

2、什么是容器

容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。
虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。

3、容器的优点

①灵活:即使是最复杂的应用也可以集装箱化。
②轻量级:容器利用并共享主机内核。
③可互换:可以即时部署更新和升级。
④便携式:可以在本地构建,部署到云,并在任何地方运行。
⑤可扩展:可以增加并自动分发容器副本。
⑥可堆叠:可以垂直和即时堆叠服务。

4、Docker的logo及设计宗旨

Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。
鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。Docker的设计宗旨:Build,Ship and Run Any App,Anywhere,
即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

5、Docker与虚拟机的区别

在这里插入图片描述

6、Docker的2个重要技术

docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)
在这里插入图片描述

7、Docker三大核心概念

①镜像:包含了各种环境或者服务的一个模板

②容器(container)–对象:镜像运行起来之后的一个实例即为容器,可以看做简易版的linux环境

③仓库:保存镜像的地方,分为私有库和公共库最大的公有库是docker公司提供的地址为:hub.docker.com

docker的三大核心以及日志等内容默认都存在/var/lib/docker下

二、Docker的安装及管理

1、安装Docker

yum install -y yum-utils device-mapper-persistent-data lvm2
#安装docker的依赖包,yum-utils:提供了 yum-config-manager 工具。
#device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
#evice mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#yum源配置为阿里云镜像
yum install -y docker-ce  docker-ce-cli
#安装docker(ce表示社区版,若需安装指定版本则--后跟版本)  

在这里插入图片描述

2、配置Docker加速器

①打开阿里云官网 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台官网进行登陆。

②登陆后打开控制台
在这里插入图片描述
③点击左侧菜单栏,搜索框输入容器镜像服务
在这里插入图片描述
④ 选择镜像工具—镜像加速器–复制命令配置即可配置完毕重新加载daemon然后重启docker。
在这里插入图片描述
在这里插入图片描述

3、Docker镜像相关基础命令

①搜索镜像

格式:docker search 关键字
作用:搜索关键字的相关镜像内容

docker search nginx

在这里插入图片描述

②拉取镜像

格式:docker pull 镜像:[版本号]
作用:拉取镜像,版本号可选,不填写默认为拉取最新镜像

docker pull nginx

在这里插入图片描述

③查看镜像

命令:docker images
作用:查看所有镜像文件

docker images 

在这里插入图片描述

④查看镜像详细信息

格式:docker inspect 镜像唯一id号
作用:可以查看到镜像的ip信息等

docker inspect f9c14fe76d50

在这里插入图片描述

⑤ 本地镜像添加新标签

格式:docker tag 名称:[标签] 名称:[新标签]
作用:用于本地镜像添加新的标签
在这里插入图片描述

⑥查看docker信息

命令:docker version
作用:查看docker版本信息

命令:docker info
作用:查看docker详细信息

在这里插入图片描述

Containers: 0                   #当前容器数量
Running: 0                      #多少容器在运行中
Paused: 0                       #多少容器在暂停中
Stopped: 0                      #多少容器在停止中
Images: 1                       #当前有多少镜像
Server Version: 24.0.2          #当前版本号
Storage Driver: overlay2        #docker当前使用的文件存储驱动 
Backing Filesystem: xfs         #底层使用的是xfs
Cgroup Driver: cgroupfs         #docker使用cgroupfs做资源隔离
 Docker Root Dir: /var/lib/docker     #docker工作目录,其镜像、容器都存在这里

⑦删除docker镜像

格式:docker rmi 仓库名:标签 /镜像唯一id号
作用:删除镜像

docker rmi nginx:web
docker rmi f9c14fe76d50

在这里插入图片描述

⑧容器导出镜像存储

格式:docker save -o 保存目录 导出的镜像
作用:将docker容器中的镜像导出保存到系统中

docker save  -o /opt/nginx.bak nginx:latest

在这里插入图片描述
在这里插入图片描述

⑨导入镜像到容器

格式: docker load -i 本地存储镜像位置 或者 docker load <本地存储镜像位置

作用:将镜像导入docker容器中

docker load -i /opt/nginx.bak

在这里插入图片描述

4、Docker 容器操作

①创建docker容器

容器创建:就是将镜像加载到容器的过程。
新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

格式:docker create [选项] 镜像
常用选项:
-i:让容器开启标准输入接受用户输入命令
-t:让 Docker 分配一个伪终端 tty
-it :合起来实现和容器交互的作用,运行一个交互式会话 shell

示例:
docker create -it nginx:1.14

②查看docker容器进程

命令:docker ps [选项]

-a 选项显示所有状态容器

作用:显示up的进程,加-a表示显示所有状态容器
单独 ps 只能显示已经运行的容器

在这里插入图片描述

③管理docker容器

格式:docker start/stop 容器唯一id/容器名称

作用:开启或关闭容器

在这里插入图片描述

④登录docker容器

格式:docker exec -it 容器唯一id bash/sh

作用:登录容器

在这里插入图片描述
在这里插入图片描述

5、docker run的运行过程

创建并启动docker容器

格式:docker run [选项] 镜像名/镜像唯一id /bin/bash

选项:
-d 选项让 Docker 容器以守护形式在后台运行,并且容器所运行的程序不能结束

-it :合起来实现和容器交互的作用,运行一个交互式会话 shell

–name:指定创建的容器的名称

作用:相当于先create容器然后再start容器并持久保持开启,不能单独使用docker run 不加任何选项,docker 容器是一个与其中运行的 shell 命令共存亡的终端,命令运行容器运行, 命令结束容器退出

注意:docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为docker容器是否正在运行的依据,如果docker容器中 pid=1的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为进程已经挂掉。

运行过程:

(1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;

(2)利用镜像创建并启动一个容器;

(3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;

(4)从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;

(5)分配一个地址池中的 IP 地址给容器;

(6)执行用户指定的应用程序,执行完毕后容器被终止运行。

6、docker 容器7个的生命周期

(1)create:已创建还未运行的容器

(2)running:正在运行中的容器

(3)restarting:容器正在重启中

(4)removing:容器正在迁移中

(5)paused:容器已暂停的状态

(6)exited:停止容器运行

(7)dead:死亡,主要是操作系统出现异常或断点导致

暂停和停止状态的区别

paused 命令挂起指定的容器中的所有进程为暂停,

stop:表示杀掉正在运行的docker容器进程,默认是10s后

7、docker容器导出导入

容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export命令将已经创建号的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。

导出格式:docker export 容器id/容器名称 >文件夹名或者 docker export -o 文件名.tar 容器唯一id
-o 指定文件

导入格式:cat 文件| docker import - centos8:test #自定义容器名docker import 文件名.tar -- 容器名:标签名

方法一:
在这里插入图片描述
方法二:
在这里插入图片描述
在这里插入图片描述

8、 删除容器

格式:docker [选项] 容器id/名称

[选项]:-f 强制删除

作用:删除容器,若容器在运行中建议先停止再删除

在这里插入图片描述
在这里插入图片描述

批量删除没有运行的容器

docker rm $(docker ps -a -q | grep -v $(docker ps -q ))

在这里插入图片描述

三、Docker网络

Docker 网络实现原理
Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。

Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过 Container-IP 访问到容器。如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主主机(端口映射),即 docker run 创建容器时候通过 -p-P 参数来启用,访问容器的时候就通过[宿主机IP]:[容器端口]访问容器。

1、host模式

docker中的容器使用宿主机的ip地址但是端口号不同,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。
一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、iptable规则等都与其他的Network Namespace隔离。 一个Docker容器一般会分配一个独立的Network Namespace。 但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace, 而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口。

配置:创建容器时添加使用 --net=host 指定容器为host模式。

在这里插入图片描述

2、container模式

container模式则是docker容器中所有的容器共享一个Network Namespace而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。

配置:创建容器时添加使用 --net=container 指定容器为host模式。

在这里插入图片描述
查看该容器的进程

docker inspect -f '{{.State.Pid}}' 容器ID号

在这里插入图片描述
在这里插入图片描述

3、none模式

none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。 也就是说,这个Docker容器没有网卡、IP、路由等信息。这种网络模式下容器只有lo回环网络,没有其他网卡。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。

配置:创建容器时添加使用 --net=none 指定容器为host模式。

在这里插入图片描述

4、bridge模式

bridge模式为docker的默认模式,安装docker时就已经产出了一个 docerk0 的虚拟网卡,bridge模式容器使用独立network Namespace,并连接到docker0虚拟网卡。通过docker0网桥以及iptables nat表配置与宿主机通信,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的 Docker 容器连接到一个虚拟网桥上。

(1)当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。

(2)从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备。 veth设备总是成对出现的,它们组成了一个数据的通道,数据从一个设备进入,就会从另一个设备出来。因此,veth设备常用来连接两个网络设备。

(3)Docker将 veth pair 设备的一端放在新创建的容器中,并命名为 eth0(容器的网卡),另一端放在主机中, 以 veth* 这样类似的名字命名, 并将这个网络设备加入到 docker0 网桥中。可以通过 brctl show 命令查看。

(4)使用 docker run -p 时,docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL 查看。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、自定义网络

直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错

docker run -itd --name test3 --network bridge --ip 172.17.0.1 centos:7 /bin/bash

#docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。
#mynetwork 为执行 docker network list 命令时,显示的bridge网络模式名称。

在这里插入图片描述
在这里插入图片描述

创建自定义网络

#可以先自定义网络,再使用指定IP运行docker
docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1"  mynetwork

在这里插入图片描述

docker run -itd --network=mynetwork --ip 172.18.0.100 nginx:1.14

在这里插入图片描述
在这里插入图片描述

docker inspect  容器ID

可以查看容器的IP
在这里插入图片描述

四、Docker数据管理

1、数据管理类型

管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)

2、数据卷

数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录进行的 mount 操作,可以互相同步内容

mkdir /var/www
#宿主机创建目录
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash
#创建容器centos7并命名为web1.将宿主机的/var/www目录挂载到容器中的/data1卷中
# -v 选项表示容器中创建数据卷
echo "this is web1" > /data1/a.txt
exit
#数据卷中创建内容a.txt并退出
cd /var/www/
#进入宿主机的挂载目录
cat a.txt
#验证容器中数据卷内容
echo 123>abc.txt
#宿主机的挂载目录创建一个文件夹
docker start web1
docker exec -it web1   /bin/bash 
#开启web1容器并进入
ls /data1
#显示data1数据卷验证其中是否有abc.txt

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、数据卷容器

–volumes-from 要挂载那个容器名称/id号 #用于容器之间的挂载
如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。

docker run --name web3 -v /data1 -v /data2 -it centos:7 /bin/bash
#创建数据卷容器web3 并创建2个data目录
echo "this is web3" > /data1/abc.txt
echo "This is web3" > /data2/ABC.txt
#web3容器2个data下创建文件
docker run -it --volumes-from web3 --name web4 centos:7 /bin/bash
#使用 --volumes-from 来挂载 web3 容器中的数据卷到新的容器

在这里插入图片描述
在这里插入图片描述

4、端口映射

在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。端口映射机制将容器内的服务提供给外部网络访问,实质上就是将宿主机的端口映射到容器中,使得外部网络访问宿主机的端口便可访问容器内的服务。

docker run -d --name test1 -P nginx                    #随机映射端口(从32768开始)

docker run -d --name test2 -p 43000:80 nginx        #指定映射端口

docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                   NAMES
9d3c04f57a68   nginx     "/docker-entrypoint.…"   4 seconds ago    Up 3 seconds    0.0.0.0:43000->80/tcp   test2
b04895f870e5   nginx     "/docker-entrypoint.…"   17 seconds ago   Up 15 seconds   0.0.0.0:49170->80/tcp   test1

浏览器访问:http://192.168.30.11:43000  、http://192.168.30.11:49170

5、容器的互联

容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息。

#创建并运行源容器取名web1
docker run -itd -P --name web01 centos:7 /bin/bash

#创建并运行接收容器取名web2,使用--link选项指定连接容器以实现容器互联
docker run -itd -P --name web02 --link web01:web01 centos:7 /bin/bash

#登录web02容器
docker exec -it web02 bash

#测试连通性
ping web01

在这里插入图片描述

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

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

相关文章

Linux 配置Tomcat环境(二)

Linux 配置Tomcat环境 二、配置Tomcat1、创建一个Tomcat文件夹用于存放Tomcat压缩包2、把Tomcat压缩包传入服务器3、解压并启动Tomcat4、CentOS开放8080端口 二、配置Tomcat 1、创建一个Tomcat文件夹用于存放Tomcat压缩包 输入指令 cd /usr/local 进入到 usr/local 输入指令 …

[LsSDK][tool] ls_syscfg_gui2.0

文章目录 一、简介1.工具的目的2. 更新点下个更新 三、配置文件 一、简介 1.工具的目的 ① 可视化选择IO口功能。 ② 自由配置IO支持的功能。 ③ 适用各类MCU&#xff0c;方便移植和开发。 ④ 功能配置和裁剪&#xff08;选项-syscfg-待完成–需要适配keil语法有些麻烦&#…

Node.js: express + MySQL + Vue实现图片上传

前段时间用Node.js: express MySQL Vue element组件做了一个小项目&#xff0c;记录一下图片上传的实现。 将图片存入数据库有两种方法&#xff1a; 1&#xff0c;将图片以二进制流的方式存入数据库&#xff08;数据库搬家容易&#xff0c;比较安全&#xff0c;但数据库空间…

微服务实战项目-学成在线-媒资管理模块(有项目实战实现)

学成在线-媒资管理模块 1 模块需求分析 1.1 模块介绍 媒资管理系统是每个在线教育平台所必须具备的&#xff0c;查阅百度百科对它的定义如下&#xff1a; 媒体资源管理(Media Asset Management&#xff0c;MAM)系统是建立在多媒体、网络、数据库和数字存储等先进技术基础上…

SpringCloud服务接口调用

SpringCloud服务接口调用 OpenFeign 是什么? 能干啥? 两者区别 OpenFeign使用 接口注解 微服务调用接口FeignClient Feign在消费端使用 新建cloud-consumer-feign-order80 导入eureka和openfeign依赖: <dependency><groupId>org.springframework.cloud&l…

Nginx 中的Rewrite讲解

这里写目录标题 常用的Nginx正则表达式locationelocation 分类location 常用的匹配规则location 优先级 总结RewriteRewrite全局变量是什么?rewrite 执行顺序如下&#xff1a;语法格式&#xff1a;rewrite \<regex> \<replacement> [flag];flag标记说明基于域名的…

STL入门 + 刷题(上)

&#x1f442; 【纯音&吉他】洋溢着青春气息的轻快旋律 - 歌单 - 网易云音乐 听着吉他纯音&#xff0c;看书做题&#xff0c;真是一种享受~ 补充&#xff1a;点击链接后&#xff0c;左上角有个提交按钮&#xff0c;在《算法训练营》的网站可以直接提交&#xff0c;而不需要…

BEVFormer组件分析

BEVFormerEncoder中的get_reference_points staticmethoddef get_reference_points(H, W, Z8, num_points_in_pillar4, dim3d, bs1, devicecuda, dtypetorch.float):"""Get the reference points used in SCA and TSA.Args:H, W: spatial shape of bev.Z: hight…

让你的代码动起来:Python进度条神器tqdm详解及应用实例

各位Python高手&#xff0c;今天我要给大家介绍一个好用的库&#xff0c;它就是&#xff1a;tqdm tqdm在阿拉伯语中的意思是 "进展"&#xff0c;所以这个库也被称为 "快速进展条"。不得不说&#xff0c;这个名字真的很有创意&#xff01; 让我们想象一下&a…

蒙特卡洛积分——采样方法

蒙特卡洛积分 目的&#xff1a; 通过计算机进行采样近似求解复杂的积分理论基础&#xff1a; 大数定律&#xff0c;当 n n n足够大时&#xff0c; X X X的均值将收敛于它的期望&#xff08;不严谨表述&#xff09;一般形式&#xff1a; θ ∫ a b f ( x ) d x ∫ a b f ( x…

瑞云科技CTO赵志杰出席广州广告数字创意峰会并发表演讲

3月23日下午&#xff0c;广州广告数字创意峰会暨穗广协企业家大讲堂年度巡礼活动在广州图书馆圆满举行。本次峰会由广州市人民政府统筹&#xff0c;中共广州市委宣传部、广州市文化广电旅游局、中共广州市天河区委、广州市天河区人民政府主办。作为第六届“文创产业大会天河峰会…

go调试工具-delve

go调试工具-delve 简介 go debug工具&#xff0c;专门为go开发的调试工具&#xff0c;并且采用go语言开发&#xff0c;支持多平台。 官网&#xff1a;https://github.com/go-delve/delve 官网有详细的手册&#xff0c;学习起来很方便 快速开始 安装 我本地的go版本 官方…

python的基本知识与面试问题的汇总1

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下python的基本知识与面试问题的汇总&#xff0c;看完之后会对python巩固有很大的帮助哦。 Python中的多线程&#xff1a; 多线程是指在一个程序中同时运行多个线程以提高程序的执行效率。Python中的threading模块…

MongoDB基础实战:CRUD

1 缘起 后台项目使用的数据库是MongoDB&#xff0c; 在一次测试联调过程中&#xff0c;测试同事在测试数据的准确性时&#xff0c; 问我这些数据该怎么查&#xff0c;如何计算验证数据的结果&#xff0c; 我当时&#xff0c;对MongoDB数据操作不熟悉&#xff0c;请教了其他有经…

2. 两数相加解题思路

文章目录 题目解题思路 题目 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&am…

C++11之异常处理

文章目录 一、异常处理的概念二、异常编写的步骤&#xff08;来自图论教育&#xff09;三、栈展开和异常捕获四、C11中noexcep关键字 一、异常处理的概念 异常是程序可能检测到的&#xff0c;运行时不正常的情况&#xff0c;如存储空间耗尽&#xff0c;数组越界&#xff0c;被…

PG提示could not determine data type of parameter $4

目录 场景&#xff1a; 现象&#xff1a; 版本&#xff1a; 分析&#xff1a; 解决方式&#xff1a; 场景&#xff1a; 今天遇到现场环境连接Postgre数据库&#xff0c;日志提示could not determine data type of parameter $4&#xff0c;通过日志复制出完整sql&#xff…

SpringCloudAlibaba:分布式事务之Seata学习

目录 一、分布式事务基础 &#xff08;一&#xff09;事务 &#xff08;二&#xff09;本地事务 &#xff08;三&#xff09;分布式事务 二、Seata概述 1.Seata 的架构包含: 2.其工作原理为: 3.如果需要在 Spring Boot 应用中使用 Seata 进行分布式事务管理,主要步骤为…

Android Jetpack Compose实现轮播图效果

Android Jetpack Compose实现轮播图效果 在最近思索如何使用Compose方式改进我的开源TMDB电影列表应用程序的主屏幕时&#xff0c;一个激动人心的概念浮现在我的脑海中——为什么不整合一个吸引人的轮播图来展示即将上映的电影呢&#xff1f;在本文中&#xff0c;我将分享我的开…

旧改快讯--星河操刀,龙华稳健工业园项目专规获批

龙华街道稳健工业园城市更新单元原列入《2019年深圳市龙华区城市更新单元计划第五批计划》&#xff0c;现已列入《2022年深圳市龙华区城市更新单元计划第三批计划》&#xff0c;现该更新单元规划已经深圳市城市规划委员会法定图则委员会2023年第16次会议审议并获原则通过&#…