Docker的安装和镜像容器的基本操作

news2024/12/23 23:44:16

Docker的安装和镜像容器的基本操作

  • Docker 概述
    • Docker与虚拟机的区别
    • namespace的六项隔离
    • Docker核心概念
  • 安装 Docker
    • Docker 镜像操作
      • 搜索镜像
      • 获取镜像
      • 镜像加速下载
      • 查看镜像信息
      • 查看下载的镜像文件信息
      • 查看下载到本地的所有镜像
      • 根据镜像的唯一标识 ID 号,获取镜像详细信息
      • 为本地的镜像添加新的标签
      • 删除镜像
      • 存出镜像:将镜像保存成为本地文件
      • 载入镜像:将镜像文件导入到镜像库中
      • 上传镜像
    • Docker 容器操作
      • 容器创建:就是将镜像加载到容器的过程。
      • 查看容器的运行状态
    • 基于现有镜像创建
      • 首先启动一个镜像,在容器里做修改
      • 然后将修改后的容器提交为新的镜像,需要使用该容器的ID号创建新镜像
    • 部署Apache镜像
      • 建立工作目录
      • 准备Dockerfile文件
      • 准备执行脚本。使用方法一的情况下需要准备执行脚本
      • 准备网站页面
      • 生成镜像(构建镜像)
      • 使用新镜像运行容器
      • 使用主机IP和1314端口,测试网页访问
    • Docker 的数据管理
      • 数据卷
    • 数据卷容器
    • 端口映射

Docker 概述

Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。
Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。

Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。
鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。

Docker的设计宗旨:Build,Ship and Run Any App,Anywhere,
即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

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

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

Docker与虚拟机的区别

特性Docker容器虚拟机
启动速度秒级分钟级
计算能力损耗几乎无损耗 50%左右
性能接近原生弱于
系统支持量(单机)上千个几十个
隔离性资源隔离/限制完全隔离

namespace的六项隔离

namespace系统调用参数隔离内容
UTSCLONE_NEWUTS主机名与域名
IPCCLONE_NEWWIPC信号量、消息队列和共享内存
PIDCLONE_NEWPID进程编号
NETWORKCLONE_NEWNET网络设备、网络栈、端口等
MOUNTCLONE_NEWNS挂载点(文件系统)
USERCLONE_NEWUSER用户和用户组(3.8以后的内核才支持〉

Docker核心概念

●镜像
Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。
通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。
Docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。

●容器
Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。
可以把容器看做是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

●仓库
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。

Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker

安装 Docker

在这里插入图片描述

[root@localhost ~]# systemctl stop firewalld.service && setenforce 0
[root@localhost ~]# hostnamectl set-hostname docker01
[root@localhost ~]# su

[root@docker01 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
## 安装依赖包
--------------------------------------------------------------------------------------------
yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------------------


[root@docker01 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
#设置阿里云镜像源


[root@docker01 ~]# yum install -y docker-ce docker-ce-cli containerd.io
#安装 Docker-CE并设置为开机自动启动

[root@docker01 ~]# systemctl start docker.service

--------------------------------------------------------------------------------------------
安装好的Docker系统有两个程序,Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。 Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。
--------------------------------------------------------------------------------------------
[root@docker01 ~]# systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since 六 2023-04-22 18:16:54 CST; 9s ago
     Docs: https://docs.docker.com
 Main PID: 38000 (dockerd)
   Memory: 31.3M
   CGroup: /system.slice/docker.service
           └─38000 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/conta...

422 18:16:53 docker01 dockerd[38000]: time="2023-04-22T18:16:53.933111832+...c
422 18:16:53 docker01 dockerd[38000]: time="2023-04-22T18:16:53.933647467+...c
422 18:16:53 docker01 dockerd[38000]: time="2023-04-22T18:16:53.933670360+...c
422 18:16:53 docker01 dockerd[38000]: time="2023-04-22T18:16:53.983036183+..."
422 18:16:54 docker01 dockerd[38000]: time="2023-04-22T18:16:54.147471090+..."
422 18:16:54 docker01 dockerd[38000]: time="2023-04-22T18:16:54.183113548+...4
422 18:16:54 docker01 dockerd[38000]: time="2023-04-22T18:16:54.183319945+..."
422 18:16:54 docker01 dockerd[38000]: time="2023-04-22T18:16:54.205515678+...c
422 18:16:54 docker01 systemd[1]: Started Docker Application Container Engine.
422 18:16:54 docker01 dockerd[38000]: time="2023-04-22T18:16:54.210028329+..."
Hint: Some lines were ellipsized, use -l to show in full.

在这里插入图片描述

[root@docker01 ~]# docker version

在这里插入图片描述

[root@docker01 ~]# docker info
## docker 信息查看

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.10.4
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.17.2
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 0    # 容器数量
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0    # 镜像数量
 Server Version: 23.0.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 logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
 runc version: v1.1.5-0-gf19387a
 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: 12
 Total Memory: 3.843GiB
 Name: docker01
 ID: 0b29a2d9-809e-444c-9c78-808fbf340159
 Docker Root Dir: /var/lib/docker   # docker 数据存储目录
 Debug Mode: false
 Registry: https://index.docker.io/v1/   # registry 地址
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
  Registry Mirrors:							# 加速站点
 Live Restore Enabled: false


在这里插入图片描述

Docker 镜像操作

搜索镜像

格式:docker search 关键字

[root@docker01 ~]# docker search nginx

在这里插入图片描述

获取镜像

格式:docker pull 仓库名称[:标签]
如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。

docker pull nginx

在这里插入图片描述

镜像加速下载

浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置**
在这里插入图片描述

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://y3m1b6i6.mirror.aliyuncs.com"]
}
EOF


systemctl daemon-reload
systemctl restart docker

在这里插入图片描述

查看镜像信息

镜像下载后存放在 /var/lib/docker 。
Docker 相关的本地资源存放在 /var/lib/docker/ 目录下,其中 containers 目录存放容器信息,image 目录存放镜像信息,overlay2 目录下存放具体的镜像底层文件。

查看下载的镜像文件信息

cat /var/lib/docker/image/overlay2/repositories.json

在这里插入图片描述

查看下载到本地的所有镜像

[root@docker01 ~]#  docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    6efc10a0510f   10 days ago   142MB

REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;

根据镜像的唯一标识 ID 号,获取镜像详细信息

格式:docker inspect 镜像ID号

docker inspect 6efc10a0510f

在这里插入图片描述

为本地的镜像添加新的标签

格式:docker tag 名称:[标签] 新名称:[新标签]

docker tag nginx:latest nginx:web

docker images | grep nginx

删除镜像

格式:
docker rmi 仓库名称:标签 #当一个镜像有多个标签时,只是删除其中指定的标签
或者
docker rmi 镜像ID号 #会彻底删除该镜像

注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

docker rmi nginx:web

存出镜像:将镜像保存成为本地文件

格式:docker save -o 存储文件名 存储的镜像

docker save -o nginx nginx:latest			#存出镜像命名为nginx存在当前目录下
ls -lh

载入镜像:将镜像文件导入到镜像库中

格式:
docker load < 存出的文件
或者
docker load -i 存出的文件

docker load < nginx

上传镜像

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

docker tag nginx:latest soscscs/nginx:web		#添加新的标签时必须在前面加上自己的dockerhub的username
docker login								#登录公共仓库
Username:soscscs
password:abc123456
docker push soscscs/nginx:web					#上传镜像

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

Docker 容器操作

容器创建:就是将镜像加载到容器的过程。

新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

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

[root@docker01 ~]# docker create -it nginx:latest /bin/bash
2154c8b190f0284bd0b2b2733f642a1228b78f9720d428952fd8ea0076e8bbad

在这里插入图片描述

查看容器的运行状态

[root@docker01 ~]# docker ps -a   #-a 选项可以显示所有的容器
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS    PORTS     NAMES
2154c8b190f0   nginx:latest   "/docker-entrypoint.…"   6 seconds ago   Created             dazzling_wescoff

容器的ID号	   加载的镜像     运行的程序               创建时间       当前的状态  端口映射  名称

在这里插入图片描述

基于现有镜像创建

首先启动一个镜像,在容器里做修改

[root@docker01 ~]# docker run -it centos:7 /bin/bash
#启动容器
Unable to find image 'centos:7' locally
7: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:7

在这里插入图片描述

[root@048ef3f5bf35 /]#  yum install -y epel-release
#安装epel源

在这里插入图片描述

[root@048ef3f5bf35 /]# yum install -y nginx
#安装nginx

在这里插入图片描述

[root@048ef3f5bf35 /]#  yum install net-tools -y
 #安装tools工具

在这里插入图片描述

[root@048ef3f5bf35 /]# nginx
#启动服务

[root@048ef3f5bf35 /]# netstat -natp |grep 80
##  #查看端口是否开启

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      131/nginx: master p 
tcp6       0      0 :::80                   :::*                    LISTEN      131/nginx: master p 
[root@048ef3f5bf35 /]# 

在这里插入图片描述

[root@048ef3f5bf35 /]# exit
exit
[root@docker01 ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS                       PORTS     NAMES
048ef3f5bf35   centos:7       "/bin/bash"               7 minutes ago    Exited (127) 5 seconds ago             nifty_greider
2154c8b190f0   nginx:latest   "/docker-entrypoint.…"   21 minutes ago   Created                                dazzling_wescoff

在这里插入图片描述

然后将修改后的容器提交为新的镜像,需要使用该容器的ID号创建新镜像

[root@docker01 ~]# docker commit -m "new nginx" -a "[指定作者信息]" 048ef3f5bf35 nginx:centos
sha256:5ca4481808e7e4e34d664c905feee425516c6962e05d8bb6fa69e5b86a80c538

#常用选项:
 -m 指定说明信息;
 -a 指定作者信息;
 -p 生成过程中停止容器的运行。
 048ef3f5bf35 原容器ID。
 nginx:centos  生成新的镜像名称。

在这里插入图片描述

[root@docker01 ~]# docker images
#查看生成的新镜像

REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
nginx             centos    5ca4481808e7   2 minutes ago   482MB
docker.../nginx   web       6efc10a0510f   10 days ago     142MB
nginx             latest    6efc10a0510f   10 days ago     142MB
centos            7         eeb6ee3f44bd   19 months ago   204MB

在这里插入图片描述

[root@docker01 ~]# docker run -itd nginx:centos bash
#使用新的镜像创建容器

55d1507297fa970885698e4b85ea096bfd146598c809951c5bc927e457a4f6c2

在这里插入图片描述

[root@docker01 ~]#  docker ps -a
#查看容器状态

CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS                       PORTS     NAMES
55d1507297fa   nginx:centos   "bash"                    21 seconds ago   Up 21 seconds                          elegant_yalow
048ef3f5bf35   centos:7       "/bin/bash"               15 minutes ago   Exited (127) 7 minutes ago             nifty_greider
2154c8b190f0   nginx:latest   "/docker-entrypoint.…"   28 minutes ago   Created                                dazzling_wescoff

在这里插入图片描述

[root@docker01 ~]# docker exec -it 55d1507297fa bash
#进入容器

在这里插入图片描述

[root@55d1507297fa /]# nginx
#启动nginx服务
[root@55d1507297fa /]# netstat -natp |grep 80
#查看80端口是否开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30/nginx: master pr 
tcp6       0      0 :::80                   :::*                    LISTEN      30/nginx: master pr 

在这里插入图片描述

部署Apache镜像

建立工作目录

[root@55d1507297fa /]# exit
exit
[root@docker01 ~]#  mkdir /opt/apache
[root@docker01 ~]# cd /opt/apache

在这里插入图片描述

准备Dockerfile文件

[root@docker01 apache]# vim Dockerfile


 FROM centos:7
 MAINTAINER this is apache image <dockerbmm>
 RUN yum -y install httpd
 EXPOSE 80
 ADD index.html /var/www/html/
 ADD run.sh /run.sh
 RUN chmod 755 /run.sh
 CMD ["/run.sh"]
ENTRYPOINT ["/usr/sbin/apachectl"]
 CMD ["-D", "FOREGROUND"]

在这里插入图片描述

准备执行脚本。使用方法一的情况下需要准备执行脚本

[root@docker01 apache]#  vim run.sh

#!/bin/bash
 rm -rf /run/httpd/*
 /usr/sbin/apachectl -D FOREGROUND

在这里插入图片描述

准备网站页面

[root@docker01 apache]#  echo "this is apache web" > index.html

在这里插入图片描述

生成镜像(构建镜像)

[root@docker01 apache]# docker build -t httpd:centos .


在这里插入图片描述

使用新镜像运行容器

[root@docker01 apache]#  docker run -d -p 1314:80 httpd:centos
#指定映射端口1314
f03db882f1c9d269fc45cf9ede3e2dcd3f7b8ba11e6962f4f6824c7726ddd68f

在这里插入图片描述

[root@docker01 apache]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS                        PORTS                                   NAMES
f03db882f1c9   httpd:centos   "/usr/sbin/apachectl…"   31 seconds ago   Up 30 seconds                 0.0.0.0:1314->80/tcp, :::1314->80/tcp   practical_meninsky
55d1507297fa   nginx:centos   "bash"                    21 minutes ago   Up 21 minutes                                                         elegant_yalow
048ef3f5bf35   centos:7       "/bin/bash"               35 minutes ago   Exited (127) 28 minutes ago                                           nifty_greider
2154c8b190f0   nginx:latest   "/docker-entrypoint.…"   49 minutes ago   Created                                                               dazzling_wescoff

在这里插入图片描述

使用主机IP和1314端口,测试网页访问

在这里插入图片描述

Docker 的数据管理

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

数据卷

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

docker pull centos:7

宿主机目录/var/www 挂载到容器中的/data1。
注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径。
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash #-v 选项可以在容器内创建数据卷

ls
echo "this is web1" > /data1/abc.txt
exit

返回宿主机进行查看

cat  /var/www/abc.txt

数据卷容器

如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。

docker run --name web2 -v /data1 -v /data2 -it centos:7 /bin/bash
echo "this is web2" > /data1/abc.txt
echo "THIS IS WEB2" > /data2/ABC.txt
#创建一个容器作为数据卷容器

使用 --volumes-from 来挂载 web2 容器中的数据卷到新的容器

docker run -it --volumes-from web2 --name web3 centos:7 /bin/bash
cat /data1/abc.txt
cat /data2/ABC.txt

端口映射

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

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.80.10:43000	、http://192.168.80.10:49170

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

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

相关文章

基于struts + spring + hibernate的题库与试卷管理系统源码

3需求分析和设计方案 3.1 题库管理 3.1.1 试题管理需求分析 试题管理是整个系统非常核心的模块&#xff0c;它基于知识点模块、章节模块、课程模块、题型管理模块完成的基础上的。其中核心元素是试题&#xff0c;通过试题将题库中的各模块连接起来。 试题管理分为题库录入和…

MyBatisPlus学习

官网&#xff1a;https://mp.baomidou.com/ MyBatis Plus&#xff0c;简化 MyBatis &#xff01; 1.概述 需要的基础&#xff1a;把我的MyBatis、Spring、SpringMVC就可以学习这个了&#xff01; 为什么要学习它呢&#xff1f;MyBatisPlus可以节省我们大量工作时间&#xff0…

随机模型预测控制(SMPC)——考虑概率约束(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 模型预测控制&#xff08;MPC&#xff09;又称为滚动时域控制和滚动时域控制&#xff0c;是一种强有力的工程应用技术。MPC的价…

springboot +flowable,处理 flowable 的用户和用户组(一)

一.简介 对于flowable是什么以及关于此框架的具体信息可以参看此项目的官方文档&#xff1a;https://www.flowable.org/docs/userguide/index.html Flowable is a light-weight business process engine written in Java.这是官网文档对此框架的完美解释&#xff1a;Flowable…

AIGC技术周报|清华、北邮新研究:让文生图AI更懂你

AIGC通过借鉴现有的、人类创造的内容来快速完成内容创作。ChatGPT、Bard等AI聊天机器人以及DallE 2、Stable Diffusion等文生图模型都属于AIGC的典型案例。「AIGC技术周报」将为你带来最新的paper、博客等前瞻性研究。 OpenAGI&#xff1a;当大模型遇见领域专家 “愿原力与大型…

ctfshow_WEB_web2 wp

前言 写这个是因为。。。我想摆烂&#xff0c;就去从最简单的题开始做了&#xff0c;想着交一道题是一道嘛&#xff0c;总之觉得这样做很适合欺骗安慰自己&#xff08;逃 然后我发现我错了&#xff0c;我第二道题就做了好久还没做出来&#xff0c;甚至最后去点开了hint…… ps…

多数据源事务

使用 DATASOURCE 模式后&#xff0c;可能一个操作涉及到多个数据源。例如说&#xff1a;创建租户时&#xff0c;即需要操作主库&#xff0c;也需要操作租户库。 考虑到多数据的数据一致性&#xff0c;我们会采用事务的方式&#xff0c;而使用 Spring 事务时&#xff0c;会存在…

FTP服务--文件传输协议

FTP服务--文件传输协议 一、FTP服务端口二、FTP服务主动模式与被动模式三、FTP服务配置方法设置匿名用户访问的FTP服务(最大权限)配置文件中常见字段的含义 一、FTP服务端口 FTP服务器默认使用TCP协议的20,21端口与客户端进行通信 20端口&#xff1a;用于建立数据连接&#x…

GDB调试的基本使用、GDB调试多进程

1. 编译时加选项-g&#xff0c;生成具有调试信息的程序 gcc -g test.c -o test 2. 启动GDB &#xff08;1&#xff09;启动GDB&#xff1a; gdb test &#xff08;2&#xff09;设置运行时参数&#xff1a;&#xff08;主函数中可接收运行时参数&#xff09; set args //…

设计模式实现之state模式

状态模式的定义&#xff1a;Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.&#xff08;当一个对象在状态改变时允许其改变行为&#xff0c;这个对象看起来像其改变了其类&#xff09;。 一个对象可以…

KVM Bridge 配置

目录 Bridge方式原理 网桥方式配置步骤 1、编辑修改网络设备脚本文件&#xff0c;增加网桥设备br0 2、编辑修改网络设备脚本文件&#xff0c;修改网卡设备ens33 3、重启宿主机查看配置 虚拟机配置 Bridge方式原理 如上图&#xff0c;网桥的基本原理就是创建一个网桥并将…

IOC使用Spring实现附实例详解

目录 一、相关导读 1. Maven系列专栏文章 2. Mybatis系列专栏文章 3. Spring系列专栏文章 二、前言 Spring简介 Spring体系结构 三、Spring实现IOC 1. 创建Maven工程&#xff0c;引入对应依赖 2. 创建实体类&#xff0c;Dao接口及实现类 3. 编写xml配置文件 4. 测试…

【翻译一下官方文档】之uniapp基础内容

目录 表单控件绑定 v-model v-model结合表单 easycom组件规范 传值 prop emit 表单控件绑定 v-model 你可以用 v-model 指令在表单 input、textarea 及 select 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇&#xff0c;但 v-mo…

如何高效提高倾斜摄影三维模型顶层合并的技术方法分析

如何高效提高倾斜摄影三维模型顶层合并的技术方法分析 1、倾斜摄影三维模型顶层合并 1.1倾斜摄影三维模型是一种基于倾斜摄影技术&#xff0c;通过多个角度拍摄同一区域的影像&#xff0c;利用计算机图像处理和三维重建技术生成的三维地理信息数据。由于一个大区域可能需要多块…

智能家居代码架构---简单工厂模式

(11条消息) 智能家居 (10) ——人脸识别祥云平台编程使用(编译libcurl库支持SSL&#xff0c;安装SSL依赖库libssl、libcrypto)openssl 依赖库行稳方能走远的博客-CSDN博客 看上面这个博客的往期文章 代码设计经验的总结&#xff0c;稳定&#xff0c;拓展性更强。一系列编程思…

倾斜摄影三维模型格式转换OSGB 到3Dtitles 实现的常用技术方法

倾斜摄影三维模型格式转换OSGB 到3Dtitles 实现的常用技术方法 倾斜摄影三维模型是一种用于建立真实世界三维场景的技术&#xff0c;常用于城市规划、土地管理、文化遗产保护等领域。在倾斜摄影模型中&#xff0c;OSGB格式和3Dtiles格式都是常见的数据格式。其中&#xff0c;OS…

IJKPLAYER源码分析-主结构

前言 本文主要分析IJKPLAYER源码软解主流程&#xff0c;硬解将另起一篇分析。所用IJKPLAYER版本号&#xff1a; #define IJKPLAYER_VERSION "f0.7.17-28-gd7040f97" 主结构 IJKPLAYER播放器的解协议、解复用、解码、音视频同步与显示播放&#xff0c;以及主要线程等…

智能家居项目整合(网络控制线程、语音控制线程,火灾报警线程)

mainPro.c&#xff08;主函数&#xff09; #include <stdio.h> #include <string.h> #include "contrlEquipments.h" #include "inputCommand.h" #include <pthread.h> #include <unistd.h>struct Equipment *findEquipByName(ch…

人工智能在医疗保健中的应用与创新

引言 随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;逐渐在各个领域展现出巨大的潜力&#xff0c;特别是在医疗保健行业。人工智能技术的引入为医疗保健领域带来了创新的诊断和治疗方法&#xff0c;提高了病患的生活质量和医疗保健效率。本文将探讨人工智…

倾斜摄影三维模型轻量化过程中遇到的常见问题分析,如何处理这些问题?

倾斜摄影三维模型轻量化过程中遇到的常见问题分析&#xff0c;如何处理这些问题&#xff1f; 在倾斜摄影超大场景的三维模型轻量化过程中&#xff0c;常见的问题包括&#xff1a; 1、精度损失。为了减小数据文件大小&#xff0c;轻量化处理可能会破坏原始数据的精度&#xff0…