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

在Docker 容器中安装 Oracle 19c

在 Docker 容器中安装 Oracle 19c 是可行的,但它相较于其他数据库(如 MySQL、PostgreSQL 等)会复杂一些,因为 Oracle 数据库有一些特定的要求,如操作系统和库的依赖,以及许可证问题。

不过,Oracle 官方已经提供了 Oracle Database 19c Docker 镜像,你可以使用它来快速启动 Oracle 19c 数据库。

  1. Oracle 19c Docker 镜像
    Oracle 提供了官方的 Docker 镜像,你可以通过以下步骤来使用:

1.1 拉取 Oracle 19c 镜像
Oracle 在 Docker Hub 上并没有直接提供 19c 镜像,而是通过 Oracle 官方的 GitHub 仓库发布了 Dockerfiles,你可以从中构建自己的镜像。Oracle 官方提供的 GitHub 地址:Oracle Docker GitHub

首先,访问 Oracle 的 GitHub 页面,获取 19c 的 Docker 镜像构建方法,或者直接使用以下命令从 Docker Hub 拉取已构建的镜像。

对于 Oracle 19c,通常你需要拉取的是 oracle/database:19.3.0-ee(Enterprise Edition)或者 oracle/database:19.3.0-se2(Standard Edition 2)。

例如:

docker pull oracle/database:19.3.0-ee
1.2 启动 Oracle 19c 容器
拉取完镜像后,可以使用以下命令启动 Oracle 19c 容器:

docker run -d -it --name oracle19c
-p 1521:1521 -p 5500:5500
-e ORACLE_PDB=ORCLPDB1
-e ORACLE_PASSWORD=your_password
oracle/database:19.3.0-ee
解释:

–name oracle19c:为容器指定一个名称(例如 oracle19c)。
-p 1521:1521:将容器的 1521 端口(Oracle 默认端口)映射到宿主机的 1521 端口。
-p 5500:5500:将容器的 5500 端口映射到宿主机的 5500 端口(用于 Oracle Enterprise Manager Express)。
-e ORACLE_PDB=ORCLPDB1:指定 PDB(Pluggable Database)名称。
-e ORACLE_PASSWORD=your_password:设置 Oracle 数据库的密码。替换为你想要设置的密码。
该命令会在后台启动 Oracle 容器,并将 1521 和 5500 端口映射到宿主机。你可以通过宿主机的 localhost:1521 来连接到 Oracle 数据库。

  1. 使用 Dockerfile 自定义构建
    如果你想构建自定义的 Oracle 19c 镜像,Oracle 提供了相应的 Dockerfile,你可以根据以下步骤进行构建:

克隆 Oracle Docker 镜像的 GitHub 仓库:

git clone https://github.com/oracle/docker-images.git
cd docker-images\OracleDatabase\SingleInstance\dockerfiles\19.3.0
copy download/LINUX.X64_193000_db_home.zip .

cd docker-images\OracleDatabase\SingleInstance\dockerfiles

构建镜像: 在构建之前,确保你已经安装了 Docker。然后使用以下命令构建 Oracle 19c 镜像:

./buildContainerImage.sh -v 19.3.0 -t oracle/database:19.3.0-ee -e
这将构建一个名为 oracle/database:19.3.0-ee 的镜像。

Administrator@desktop-02 MINGW64 /e/workspace_docker/docker-images/OracleDatabase/SingleInstance/dockerfiles (main)
$ ./buildContainerImage.sh -v 19.3.0 -t oracle/database:19.3.0-ee -e
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
WARNING: daemon is not using the default seccomp profile
Checking Docker version.
Dockerfile
Checking if required packages are present and valid...
LINUX.X64_193000_db_home.zip: OK
==========================
Container runtime info:
Client:Version:    27.4.0Context:    desktop-linuxDebug Mode: falsePlugins:ai: Ask Gordon - Docker Agent (Docker Inc.)Version:  v0.5.1Path:     C:\Users\Administrator\.docker\cli-plugins\docker-ai.exebuildx: Docker Buildx (Docker Inc.)Version:  v0.19.2-desktop.1Path:     C:\Users\Administrator\.docker\cli-plugins\docker-buildx.execompose: Docker Compose (Docker Inc.)

在这里插入图片描述
构建情况:

Administrator@desktop-02 MINGW64 /e/workspace_docker/docker-images/OracleDatabase/SingleInstance/dockerfiles (main)
$ ./buildContainerImage.sh -v 19.3.0 -t oracle/database:19.3.0-ee -e
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
WARNING: daemon is not using the default seccomp profile
Checking Docker version.
Dockerfile
Checking if required packages are present and valid...
LINUX.X64_193000_db_home.zip: OK
==========================
Container runtime info:
Client:Version:    27.4.0Context:    desktop-linuxDebug Mode: falsePlugins:ai: Ask Gordon - Docker Agent (Docker Inc.)Version:  v0.5.1Path:     C:\Users\Administrator\.docker\cli-plugins\docker-ai.exebuildx: Docker Buildx (Docker Inc.)Version:  v0.19.2-desktop.1Path:     C:\Users\Administrator\.docker\cli-plugins\docker-buildx.execompose: Docker Compose (Docker Inc.)Version:  v2.31.0-desktop.2Path:     C:\Users\Administrator\.docker\cli-plugins\docker-compose.exedebug: Get a shell into any image or container (Docker Inc.)Version:  0.0.37Path:     C:\Users\Administrator\.docker\cli-plugins\docker-debug.exedesktop: Docker Desktop commands (Beta) (Docker Inc.)Version:  v0.1.0Path:     C:\Users\Administrator\.docker\cli-plugins\docker-desktop.exedev: Docker Dev Environments (Docker Inc.)Version:  v0.1.2Path:     C:\Users\Administrator\.docker\cli-plugins\docker-dev.exeextension: Manages Docker extensions (Docker Inc.)Version:  v0.2.27Path:     C:\Users\Administrator\.docker\cli-plugins\docker-extension.exefeedback: Provide feedback, right in your terminal! (Docker Inc.)Version:  v1.0.5Path:     C:\Users\Administrator\.docker\cli-plugins\docker-feedback.exeinit: Creates Docker-related starter files for your project (Docker Inc.)Version:  v1.4.0Path:     C:\Users\Administrator\.docker\cli-plugins\docker-init.exesbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)Version:  0.6.0Path:     C:\Users\Administrator\.docker\cli-plugins\docker-sbom.exescout: Docker Scout (Docker Inc.)Version:  v1.15.1Path:     C:\Users\Administrator\.docker\cli-plugins\docker-scout.exeServer:Containers: 4Running: 0Paused: 0Stopped: 4Images: 3Server Version: 27.4.0Storage Driver: overlayfsdriver-type: io.containerd.snapshotter.v1Logging Driver: json-fileCgroup Driver: cgroupfsCgroup Version: 1Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local splunk syslogCDI spec directories:/etc/cdi/var/run/cdiSwarm: inactiveRuntimes: io.containerd.runc.v2 nvidia runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 472731909fa34bd7bc9c087e4c27943f9835f111runc version: v1.1.13-0-g58aa920init version: de40ad0Security Options:seccompProfile: unconfinedKernel Version: 5.15.167.4-microsoft-standard-WSL2Operating System: Docker DesktopOSType: linuxArchitecture: x86_64CPUs: 16Total Memory: 7.688GiBName: docker-desktopID: b354966b-6f88-4b9c-a5e4-5a8422fbc482Docker Root Dir: /var/lib/dockerDebug Mode: falseHTTP Proxy: http.docker.internal:3128HTTPS Proxy: http.docker.internal:3128No Proxy: hubproxy.docker.internalLabels:com.docker.desktop.address=npipe://\\.\pipe\docker_cliExperimental: falseInsecure Registries:hubproxy.docker.internal:5555127.0.0.0/8Live Restore Enabled: falseWARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
WARNING: daemon is not using the default seccomp profile
==========================
Building image 'oracle/database:19.3.0-ee' ...
[+] Building 789.4s (16/16) FINISHED                                                                                                                                                                                                                      docker:desktop-linux=> [internal] load build definition from Dockerfile                                                                                                                                                                                                                      0.0s=> => transferring dockerfile: 5.21kB                                                                                                                                                                                                                                    0.0s=> WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 25)                                                                                                                                                                                           0.0s=> [internal] load metadata for docker.io/library/oraclelinux:7-slim                                                                                                                                                                                                     2.8s=> [auth] library/oraclelinux:pull token for registry-1.docker.io                                                                                                                                                                                                        0.0s=> [internal] load .dockerignore                                                                                                                                                                                                                                         0.0s=> => transferring context: 2B                                                                                                                                                                                                                                           0.0s=> CACHED [base 1/4] FROM docker.io/library/oraclelinux:7-slim@sha256:1add6ed8602ea996528110fe75f4b03c2ca7ffdbe9497148dbb46c3cc9ce6acd                                                                                                                                   0.0s=> => resolve docker.io/library/oraclelinux:7-slim@sha256:1add6ed8602ea996528110fe75f4b03c2ca7ffdbe9497148dbb46c3cc9ce6acd                                                                                                                                               0.0s=> [internal] load build context                                                                                                                                                                                                                                         0.0s=> => transferring context: 537B                                                                                                                                                                                                                                         0.0s=> [base 2/4] COPY setupLinuxEnv.sh checkSpace.sh /opt/install/                                                                                                                                                                                                          0.0s=> [base 3/4] COPY runOracle.sh startDB.sh createDB.sh createObserver.sh dbca.rsp.tmpl setPassword.sh checkDBStatus.sh runUserScripts.sh relinkOracleBinary.sh configTcps.sh /opt/oracle/                                                                                0.1s=> [base 4/4] RUN chmod ug+x /opt/install/*.sh &&     sync &&     /opt/install/checkSpace.sh &&     /opt/install/setupLinuxEnv.sh &&     rm -rf /opt/install                                                                                                            44.3s=> [builder 1/2] COPY --chown=oracle:dba LINUX.X64_193000_db_home.zip db_inst.rsp installDBBinaries.sh /opt/install/                                                                                                                                                    97.2s=> [builder 2/2] RUN chmod ug+x "/opt/install"/*.sh &&     sync &&     "/opt/install"/"installDBBinaries.sh" ee                                                                                                                                                        291.3s=> [stage-2 1/4] COPY --chown=oracle:dba --from=builder /opt/oracle /opt/oracle                                                                                                                                                                                         86.2s=> [stage-2 2/4] RUN "/opt/oracle"/oraInventory/orainstRoot.sh &&     "/opt/oracle/product/19c/dbhome_1"/root.sh                                                                                                                                                         2.7s=> [stage-2 3/4] WORKDIR /home/oracle                                                                                                                                                                                                                                    0.1s=> [stage-2 4/4] RUN echo 'ORACLE_SID=${ORACLE_SID:-ORCLCDB}; export ORACLE_SID=${ORACLE_SID^^}' > .bashrc                                                                                                                                                               0.7s=> exporting to image                                                                                                                                                                                                                                                  235.6s=> => exporting layers                                                                                                                                                                                                                                                 178.8s=> => exporting manifest sha256:89a64ba178832bf56c89b4086023281875c1881cee742d49d3a735893fa94ab1                                                                                                                                                                         0.0s=> => exporting config sha256:17e13d7dbb70cffae764691fb1207c1947e21e425595c1cf01be09d76d340fd2                                                                                                                                                                           0.0s=> => exporting attestation manifest sha256:d7992dc6df324c174a6c2cbe8292c1379aa01a0c99b74742d93425e120734dcd                                                                                                                                                             0.0s=> => exporting manifest list sha256:9b96b9c8d56fad3b211a564d23b42e599aa52613688108febc029dc34f497ca5                                                                                                                                                                    0.0s=> => naming to docker.io/oracle/database:19.3.0-ee                                                                                                                                                                                                                      0.0s=> => unpacking to docker.io/oracle/database:19.3.0-ee                                                                                                                                                                                                                  56.7s1 warning found (use docker --debug to expand):- FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 25)Oracle Database container image for 'ee' version 19.3.0 is ready to be extended:--> oracle/database:19.3.0-eeBuild completed in 792 seconds.Administrator@desktop-02 MINGW64 /e/workspace_docker/docker-images/OracleDatabase/SingleInstance/dockerfiles (main)

通过docker desktop可以看到该image已经创建:
在这里插入图片描述

构建完成后,使用 docker run 命令启动容器:

docker run -d -it --name oracle19c -p 1521:1521 -p 5500:5500 -e ORACLE_PDB=ORCLPDB1 -e ORACLE_PASSWORD=password oracle/database:19.3.0-ee

  1. 注意事项
    资源要求:Oracle 19c 数据库有比较高的资源需求,特别是内存和 CPU。确保你的机器有足够的资源来运行 Oracle 容器。一般来说,至少需要 2 GB 的内存和 2 核的 CPU。

许可证问题:Oracle 数据库是商用软件,使用时需要遵循 Oracle 的许可证。Oracle 提供的 Docker 镜像是商用版本,你需要确保有合法的许可证来使用它。如果你只是进行开发和测试,可以使用 Oracle 提供的免费开发许可证。

Oracle 实例初始化:在第一次启动 Oracle 容器时,它会初始化数据库,这可能需要一些时间。你可以查看容器的日志,确认初始化是否完成:

docker logs -f oracle19c

日志情况
C:\Users\Administrator>docker logs -f oracle19c

ORACLE EDITION: ENTERPRISE

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 24-JAN-2025 01:50:13

Copyright © 1991, 2019, Oracle. All rights reserved.

Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait…

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/867211d171c1/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER

Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 24-JAN-2025 01:50:14
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/867211d171c1/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
The listener supports no services
The command completed successfully
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file “/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log” for further details.

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jan 24 02:03:36 2025
Version 19.3.0.0.0

Copyright © 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL>
System altered.

SQL>
System altered.

SQL>
Pluggable database altered.

SQL>
PL/SQL procedure successfully completed.

SQL> SQL>
Session altered.

SQL>
User created.

SQL>
Grant succeeded.

SQL>
Grant succeeded.

SQL>
Grant succeeded.

SQL>
User altered.

SQL> SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
The Oracle base remains unchanged with value /opt/oracle
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE “USERS”
2025-01-24T02:03:36.547120+00:00
ALTER SYSTEM SET control_files=‘/opt/oracle/oradata/ORCLCDB/control01.ctl’ SCOPE=SPFILE;
2025-01-24T02:03:36.553039+00:00
ALTER SYSTEM SET local_listener=‘’ SCOPE=BOTH;
ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
Completed: ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
2025-01-24T02:03:36.940030+00:00

XDB initialized.
2025-01-24T02:13:25.058000+00:00
ORCLPDB1(3):Resize operation completed for file# 10, old size 327680K, new size 337920K

  1. 连接到 Oracle 数据库
    一旦容器启动并运行,你可以使用任何支持 Oracle 数据库连接的客户端(如 SQL*Plus、Oracle SQL Developer 等)连接到数据库。
    一些19c的简单查询语句:
    col account_status format a12;
    col username format a20;
    select account_status,username from dba_users order by 1;

set linesize 99;
col guid format a32;
col name format a32;
select con_id,dbid,guid,name,open_mode from v$pdbs;

show con_name
show pdbs

例如,通过 SQL*Plus 连接到 Oracle 19c 容器:

sqlplus sys/your_password@localhost:1521/ORCLPDB1 as sysdba

通过登录docker进行数据库操作:

docker exec -it oracle19c bash
bash-4.2$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 24-JAN-2025 02:35:30

Copyright © 1991, 2019, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER

Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 24-JAN-2025 01:50:14
Uptime 0 days 0 hr. 45 min. 16 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/867211d171c1/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=867211d171c1)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary…
Service “2c6b220cd5711311e063020011ace476” has 1 instance(s).
Instance “ORCLCDB”, status READY, has 1 handler(s) for this service…
Service “ORCLCDB” has 1 instance(s).
Instance “ORCLCDB”, status READY, has 1 handler(s) for this service…
Service “ORCLCDBXDB” has 1 instance(s).
Instance “ORCLCDB”, status READY, has 1 handler(s) for this service…
Service “orclpdb1” has 1 instance(s).
Instance “ORCLCDB”, status READY, has 1 handler(s) for this service…
The command completed successfully

bash-4.2$ sqlplus sys/password as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jan 24 03:21:28 2025
Version 19.3.0.0.0

Copyright © 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> alter session set container=ORCLPDB1;

Session altered.

SQL>
SQL>
SQL> create user test01 identified by test01 default tablespace users;

User created.

SQL> grant connect,resource,select any table,select any dictionary ,create view to test01;

Grant succeeded.
SQL> alter session set container=orclpdb1;

Session altered.

SQL> alter user test01 quota unlimited on users;

User altered.

对在orclpdb1数据库容器上创建的test01用户进行测试
bash-4.2$ sqlplus test01/test01@localhost:1521/orclpdb1

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jan 24 03:33:25 2025
Version 19.3.0.0.0

Copyright © 1982, 2019, Oracle. All rights reserved.

Last Successful login time: Fri Jan 24 2025 03:26:21 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL>

SQL> create table tmp1 (a varchar(100));

Table created.

SQL> insert into tmp1 values(‘11111’);

1 row created.

SQL> commit;

Commit complete.

SQL> quit
通过图形界面的数据库工具查看:
在这里插入图片描述

  1. 停止和删除容器
    如果你不再需要 Oracle 容器,可以停止并删除容器:

停止容器:

docker stop oracle19c
删除容器:

docker rm oracle19c
总结
在 Docker 容器中安装 Oracle 19c 是可行的,Oracle 提供了官方的 Docker 镜像和构建方法。
你可以从 Docker Hub 拉取 Oracle 19c 镜像,或使用 Oracle 提供的 Dockerfile 自定义构建镜像。
启动容器时,使用适当的端口映射和环境变量来设置数据库密码和 PDB 名称。
需要考虑资源要求和许可证问题,确保在合法和合适的环境中使用。

相关文章:

在Docker 容器中安装 Oracle 19c

在 Docker 容器中安装 Oracle 19c 是可行的,但它相较于其他数据库(如 MySQL、PostgreSQL 等)会复杂一些,因为 Oracle 数据库有一些特定的要求,如操作系统和库的依赖,以及许可证问题。 不过,Ora…...

使用Avalonia UI实现DataGrid

1.Avalonia中的DataGrid的使用 DataGrid 是客户端 UI 中一个非常重要的控件。在 Avalonia 中,DataGrid 是一个独立的包 Avalonia.Controls.DataGrid,因此需要单独通过 NuGet 安装。接下来,将介绍如何安装和使用 DataGrid 控件。 2.安装 Dat…...

MySQL中的读锁与写锁:概念与作用深度剖析

MySQL中的读锁与写锁:概念与作用深度剖析 在MySQL数据库的并发控制机制中,读锁和写锁起着至关重要的作用。它们是确保数据在多用户环境下能够正确、安全地被访问和修改的关键工具。 一、读锁(共享锁)概念 读锁,也称为…...

Dest1ny漏洞库:用友 U8 Cloud ReleaseRepMngAction SQL 注入漏洞(CNVD-2024-33023)

大家好,今天是Dest1ny漏洞库的专题!! 会时不时发送新的漏洞资讯!! 大家多多关注,多多点赞!!! 0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP,主要聚…...

python学opencv|读取图像(四十九)原理探究:使用cv2.bitwise()系列函数实现图像按位运算

【0】基础定义 按位与运算:两个等长度二进制数上下对齐,全1取1,其余取0。 按位或运算:两个等长度二进制数上下对齐,有1取1,其余取0。 按位异或运算: 两个等长度二进制数上下对齐,相…...

【面试】【编程范式总结】面向对象编程(OOP)、函数式编程(FP)和响应式编程(RP)

一、编程范式总结 编程范式是指开发软件时采用的一种方法论或思维方式,主要包括面向对象编程(OOP)、**函数式编程(FP)和响应式编程(RP)**等。这些范式的不同特性和适用场景,帮助开发…...

创建要素图层和表视图

操作方法: 下面按照步骤学习如何使用Make Feature Layer和Make Table View工具 1.在arcmap中打开活动地图文档 2.导入arcpy模块 3.设置工作空间 arcpy.env.workspace "<>" 4.使用try语句,使用Make Feature Layer工具创建内存副本 try:flayer arcpy.Ma…...

51单片机入门_01_单片机(MCU)概述(使用STC89C52芯片;使用到的硬件及课程安排)

文章目录 1. 什么是单片机1.1 微型计算机的组成1.2 微型计算机的应用形态1.3 单板微型计算机1.4 单片机(MCU)1.4.1 单片机内部结构1.4.2 单片机应用系统的组成 1.5 80C51单片机系列1.5.1 STC公司的51单片机1.5.1 STC公司单片机的命名规则 2. 单片机的特点及应用领域2.1 单片机的…...

万物皆有联系:驼鸟和布什

布什&#xff1f;一块布十块钱吗&#xff1f;不是&#xff0c;大家都知道&#xff0c;美国有两个总统&#xff0c;叫老布什和小布什&#xff0c;因为两个布什总统&#xff08;父子俩&#xff09;&#xff0c;大家就这么叫来着&#xff0c;目的是为了好区分。 布什总统的布什&a…...

【最后203篇系列】007 使用APS搭建本地定时任务

说明 最大的好处是方便。 其实所有任务的源头&#xff0c;应该都是通过定时的方式&#xff0c;在每个时隙发起轮询。当然在任务的后续传递中&#xff0c;可以通过CallBack或者WebHook的方式&#xff0c;以事件的形态进行。这样可以避免长任务执行的过程中进行等待和轮询。 总结…...

go gin配置air

一、依赖下载 安装最新&#xff0c;且在你工作区下进行安装&#xff0c;我的是D:/GO是我的工作区&#xff0c;所有项目都在目录下的src&#xff0c; go install github.com/air-verse/airlatest 如果出现类似报错&#xff1a; 将图中第三行 github.com/air-verse/air 替换最…...

Java定时任务实现方案(五)——时间轮

时间轮 这篇笔记&#xff0c;我们要来介绍实现Java定时任务的第五个方案&#xff0c;使用时间轮&#xff0c;以及该方案的优点和缺点。 ​ 时间轮是一种高效的定时任务调度算法&#xff0c;特别适用于大量定时任务的场景。时间轮的定时任务实现&#xff0c;可以使用DelayQueue…...

【事务管理】

目录 一. 介绍与操作二. Spring事务管理三. 事务四大特性 \quad 一. 介绍与操作 \quad \quad 二. Spring事务管理 \quad 推荐加在经常进行增删改的方法上 \quad 三. 事务四大特性 \quad ctrlaltt...

Highcharts 柱形图:深入解析与最佳实践

Highcharts 柱形图:深入解析与最佳实践 引言 Highcharts 是一个功能强大的图表库,它允许用户轻松地在网页上创建各种类型的图表。其中,柱形图因其直观的展示方式,在数据分析、业务报告等领域得到了广泛应用。本文将深入解析 Highcharts 柱形图,包括其基本用法、高级特性…...

js笔记(黑马程序员)

js&#xff08;day2&#xff09; 一、运算符 1.赋值运算符 运算符作用加法赋值-减法赋值*乘法复制/除法赋值%取余赋值 2.一元运算符 符号作用说明自增变量自身的值加1&#xff0c;如X--自减变量自身的值减1&#xff0c;如X-- 3.比较运算符 运算符作用>左边是否大于右…...

Mac m1,m2,m3芯片使用nvm安装node14报错

使用nvm安装了node 12/16/18都没有问题&#xff0c;到14就报错了。第一次看到这个报错有点懵&#xff0c;查询资料发现是Mac芯片的问题。 Issue上提供了两个方案&#xff1a; 1、为了在arm64的Mac上安装node 14&#xff0c;需要使用Rosseta&#xff0c;可以通过以下命令安装 …...

LeetCode:63. 不同路径 II

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;63. 不同路径 II 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角&#xff08;即 grid[0][0]…...

安装zsh并美化

0 Zsh 是一种功能强大的 shell&#xff0c;通常用于替代默认的 Bash shell。它为命令行提供了更多的功能&#xff0c;例如自动补全、强大的模式匹配和主题支持等。 Oh My Zsh 是用于管理 Zsh 配置的框架。 powerlevel10k是样式&#xff0c;通过p10k configure脚本可以调节自己…...

读量子霸权18读后总结与感想兼导读

1. 基本信息 量子霸权 【美】加来道雄 著 中信出版集团股份有限公司,2024年4月出版 1.1. 读薄率 书籍总字数281千字&#xff0c;笔记总字数65977字。 读薄率65977281000≈23.48% 1.2. 读厚方向 量子宇宙 从掷骰子到阿尔法狗&#xff1a;趣谈概率 上帝掷骰子吗&#xf…...

统计学中的样本概率论中的样本

不知道当初谁想的把概率论和数理统计合并&#xff0c;作为一门课。这本身是可以合并&#xff0c;完整的一条线&#xff0c;看这里。但是&#xff0c;作为任课老师应该从整体上交代清楚&#xff0c;毕竟是两个学科&#xff0c;不同的学科合并必然会有各种不协调的问题。 举个最…...

HTML 符号详解

HTML 符号详解 引言 HTML(超文本标记语言)符号是HTML文档中用来表示特殊字符的标记。这些符号在日常网页设计和开发中扮演着重要角色,特别是在需要显示版权、商标、货币符号等特殊字符时。本文将详细介绍HTML符号的用法、类型以及如何在HTML文档中插入这些符号。 HTML符号…...

蓝桥杯练习日常|c/c++竞赛常用库函数(下)

书接上回......蓝桥杯算法日常|c\c常用竞赛函数总结备用-CSDN博客 目录 书接上回......https://blog.csdn.net/weixin_47011416/article/details/145290017 1、二分查找 2、lower_bound uper_bound 3、memset&#xff08;&#xff09; 函数原型 参数说明 返回值 常见用…...

Python vLLM 实战应用指南

文章目录 1. vLLM 简介2. 安装 vLLM3. 快速开始3.1 加载模型并生成文本3.2 参数说明 4. 实战应用场景4.1 构建聊天机器人示例对话&#xff1a; 4.2 文本补全输出示例&#xff1a; 4.3 自定义模型服务启动服务调用服务 5. 性能优化5.1 GPU 加速5.2 动态批处理 6. 总结 vLLM 是一…...

.NET MAUI 入门学习指南

引言 在当今移动应用和跨平台开发的热潮中,.NET MAUI(Multi - platform App UI)应运而生,为开发者提供了一种高效、统一的方式来构建跨多个平台(如 iOS、Android、Windows 等)的原生应用。它整合了 Xamarin.Forms 的优点,并在此基础上进行了诸多改进和创新,使得开发者…...

JavaScript系列(49)--游戏引擎实现详解

JavaScript游戏引擎实现详解 &#x1f3ae; 今天&#xff0c;让我们深入探讨JavaScript的游戏引擎实现。游戏引擎是一个复杂的系统&#xff0c;它需要处理渲染、物理、音频、输入等多个方面&#xff0c;让我们一步步实现一个基础但功能完整的游戏引擎。 游戏引擎基础概念 &am…...

AI如何帮助解决生活中的琐碎难题?

引言&#xff1a;AI已经融入我们的日常生活 你有没有遇到过这样的情况——早上匆忙出门却忘了带钥匙&#xff0c;到了公司才想起昨天的会议资料没有打印&#xff0c;或者下班回家还在纠结晚饭吃什么&#xff1f;这些看似微不足道的小事&#xff0c;往往让人疲惫不堪。而如今&a…...

K8s运维管理平台 - KubeSphere 3.x 和4.x 使用分析:功能较强,UI美观

目录标题 Lic使用感受优点&#xff1a;优化点&#xff1a; 实操首页项目 | 应用负载 | 配置 | 定制资源定义存储监控告警集群设置 **KubeSphere 3.x** 和 **4.x**1. **架构变化**&#xff1a;2. **多集群管理**&#xff1a;3. **增强的 DevOps 功能**&#xff1a;4. **监控与日…...

芯片AI深度实战:基础篇之langchain

基于ollama, langchain,可以构建一个自己的知识库&#xff0c;比如这个 Build Your Own RAG App: A Step-by-Step Guide to Setup LLM locally using Ollama, Python, and ChromaDB | HackerNoon 这是因为&#xff1a; 以上范例就实现了这样一个流程&#xff1a; 系列文章&…...

WordPress使用(1)

1. 概述 WordPress是一个开源博客框架&#xff0c;配合不同主题&#xff0c;可以有多种展现方式&#xff0c;博客、企业官网、CMS系统等&#xff0c;都可以很好的实现。 官网&#xff1a;博客工具、发布平台和内容管理系统 – WordPress.org China 简体中文&#xff0c;这里可…...

单机伪分布Hadoop详细配置

目录 1. 引言2. 配置单机Hadoop2.1 下载并解压JDK1.8、Hadoop3.3.62.2 配置环境变量2.3 验证JDK、Hadoop配置 3. 伪分布Hadoop3.1 配置ssh免密码登录3.2 配置伪分布Hadoop3.2.1 修改hadoop-env.sh3.2.2 修改core-site.xml3.2.3 修改hdfs-site.xml3.2.4 修改yarn-site.xml3.2.5 …...