在Docker 容器中安装 Oracle 19c
在 Docker 容器中安装 Oracle 19c 是可行的,但它相较于其他数据库(如 MySQL、PostgreSQL 等)会复杂一些,因为 Oracle 数据库有一些特定的要求,如操作系统和库的依赖,以及许可证问题。
不过,Oracle 官方已经提供了 Oracle Database 19c Docker 镜像,你可以使用它来快速启动 Oracle 19c 数据库。
- 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 数据库。
- 使用 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
- 注意事项
资源要求: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
- 连接到 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
通过图形界面的数据库工具查看:

- 停止和删除容器
如果你不再需要 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 单片机的…...
万物皆有联系:驼鸟和布什
布什?一块布十块钱吗?不是,大家都知道,美国有两个总统,叫老布什和小布什,因为两个布什总统(父子俩),大家就这么叫来着,目的是为了好区分。 布什总统的布什&a…...
【最后203篇系列】007 使用APS搭建本地定时任务
说明 最大的好处是方便。 其实所有任务的源头,应该都是通过定时的方式,在每个时隙发起轮询。当然在任务的后续传递中,可以通过CallBack或者WebHook的方式,以事件的形态进行。这样可以避免长任务执行的过程中进行等待和轮询。 总结…...
go gin配置air
一、依赖下载 安装最新,且在你工作区下进行安装,我的是D:/GO是我的工作区,所有项目都在目录下的src, go install github.com/air-verse/airlatest 如果出现类似报错: 将图中第三行 github.com/air-verse/air 替换最…...
Java定时任务实现方案(五)——时间轮
时间轮 这篇笔记,我们要来介绍实现Java定时任务的第五个方案,使用时间轮,以及该方案的优点和缺点。 时间轮是一种高效的定时任务调度算法,特别适用于大量定时任务的场景。时间轮的定时任务实现,可以使用DelayQueue…...
【事务管理】
目录 一. 介绍与操作二. Spring事务管理三. 事务四大特性 \quad 一. 介绍与操作 \quad \quad 二. Spring事务管理 \quad 推荐加在经常进行增删改的方法上 \quad 三. 事务四大特性 \quad ctrlaltt...
Highcharts 柱形图:深入解析与最佳实践
Highcharts 柱形图:深入解析与最佳实践 引言 Highcharts 是一个功能强大的图表库,它允许用户轻松地在网页上创建各种类型的图表。其中,柱形图因其直观的展示方式,在数据分析、业务报告等领域得到了广泛应用。本文将深入解析 Highcharts 柱形图,包括其基本用法、高级特性…...
js笔记(黑马程序员)
js(day2) 一、运算符 1.赋值运算符 运算符作用加法赋值-减法赋值*乘法复制/除法赋值%取余赋值 2.一元运算符 符号作用说明自增变量自身的值加1,如X--自减变量自身的值减1,如X-- 3.比较运算符 运算符作用>左边是否大于右…...
Mac m1,m2,m3芯片使用nvm安装node14报错
使用nvm安装了node 12/16/18都没有问题,到14就报错了。第一次看到这个报错有点懵,查询资料发现是Mac芯片的问题。 Issue上提供了两个方案: 1、为了在arm64的Mac上安装node 14,需要使用Rosseta,可以通过以下命令安装 …...
LeetCode:63. 不同路径 II
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:63. 不同路径 II 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0]…...
安装zsh并美化
0 Zsh 是一种功能强大的 shell,通常用于替代默认的 Bash shell。它为命令行提供了更多的功能,例如自动补全、强大的模式匹配和主题支持等。 Oh My Zsh 是用于管理 Zsh 配置的框架。 powerlevel10k是样式,通过p10k configure脚本可以调节自己…...
读量子霸权18读后总结与感想兼导读
1. 基本信息 量子霸权 【美】加来道雄 著 中信出版集团股份有限公司,2024年4月出版 1.1. 读薄率 书籍总字数281千字,笔记总字数65977字。 读薄率65977281000≈23.48% 1.2. 读厚方向 量子宇宙 从掷骰子到阿尔法狗:趣谈概率 上帝掷骰子吗…...
统计学中的样本概率论中的样本
不知道当初谁想的把概率论和数理统计合并,作为一门课。这本身是可以合并,完整的一条线,看这里。但是,作为任课老师应该从整体上交代清楚,毕竟是两个学科,不同的学科合并必然会有各种不协调的问题。 举个最…...
Verilog与SystemVerilog在Arm Cycle Model Compiler中的支持与优化
1. Verilog与SystemVerilog语言支持概述 作为数字电路设计的行业标准语言,Verilog和SystemVerilog在半导体领域占据着核心地位。Arm的Cycle Model Compiler 11.5版本对这两种语言提供了全面的支持,但在实际工程应用中,开发者需要特别注意不同…...
工程师视角:礼品卡系统设计缺陷分析与安全消费指南
1. 从“设计工具”到“消费陷阱”:一位工程师的假日购物避坑指南又到年底了,办公室里讨论“给客户/团队送什么礼物好”的声音又多了起来。作为一名在电子设计自动化(EDA)和可编程逻辑工具领域泡了十几年的工程师,我习惯…...
别再搞混了!DCI-P3、Display P3、sRGB色彩空间到底差在哪?给设计师和开发者的实用指南
别再搞混了!DCI-P3、Display P3、sRGB色彩空间到底差在哪?给设计师和开发者的实用指南 打开设计软件的色彩配置选项,你是否曾被DCI-P3、Display P3、sRGB这些术语搞得晕头转向?当客户抱怨"这个红色在手机上看起来不一样"…...
初创公司如何构建高效董事会:从法律合规到战略增长引擎
1. 创业公司的董事会:从法律义务到增长引擎对于很多初次创业的创始人来说,“董事会”这个词听起来可能既遥远又麻烦。它像是公司法条里一个冷冰冰的规定,或者是在融资时不得不向投资人妥协、让渡控制权的象征。尤其是在公司刚起步、团队只有三…...
用电脑自动玩小红书,OpenClaw+ADB让效率翻倍!附详细教程“
本文介绍了如何使用OpenClaw(运行在MacOS上)结合ADB工具实现Android手机的自动化操作。内容涵盖Android手机配置(开启开发者选项和USB调试)、MacOS环境准备(安装ADB工具和配置ADBKeyboard支持中文输入)&…...
【仅限首批内测团队获取】AI Agent Serverless标准化交付套件(含Terraform模块+OpenTelemetry追踪模板+合规审计清单)
更多请点击: https://intelliparadigm.com 第一章:AI Agent Serverless应用的演进逻辑与范式跃迁 AI Agent 与 Serverless 的融合并非技术堆叠,而是计算范式在智能体自治性、事件驱动粒度和资源契约关系三重维度上的结构性重构。早期云函数仅…...
AD覆铜时引脚‘粘’在一起了?别慌,三步排查法帮你搞定Modified Polygon和覆铜粘连
AD覆铜引脚粘连问题排查指南:从现象到解决方案的完整路径 在PCB设计过程中,覆铜操作看似简单却暗藏玄机。许多Altium Designer用户都曾遭遇过这样的场景:当你信心满满地完成布线,准备进行最后的覆铜操作时,突然发现不同…...
告别网盘限速困扰:网盘直链下载助手全面解析与应用指南
告别网盘限速困扰:网盘直链下载助手全面解析与应用指南 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 还在为网盘下载速度缓慢而烦恼吗?网盘直链下载助手作为一款免费…...
离散数学“黑话”指南:命题、谓词、群论,一次讲清程序员常遇到的术语
离散数学“黑话”指南:程序员视角下的概念破译 刚接触算法优化时,我盯着论文里的"幺半群"概念发愣——这和我在代码里写的if-else有什么关系?直到某天用状态机处理用户权限时突然顿悟:原来离散数学的抽象术语࿰…...
一图定胜负|虎贲等考 AI 科研绘图:零代码画出期刊级学术图,让论文颜值与专业度双在线
据 Nature 统计,超 90% 的审稿人先看图表,65% 的初审意见直接来自图表质量,一张规范、清晰、专业的学术图,直接影响论文录用与答辩评分。可现实是:Origin、Visio 难学难精通,PPT 做图粗糙不规范,…...
