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

[Docker学习笔记]Docker的原理Docker常见命令

文章目录

  • 什么是Docker
    • Docker的优势
    • Docker的原理
    • Docker 的安装
    • Docker 的 `namespaces`
  • Docker的常见命令
    • `docker version`:查看版本信息
    • `docker info `查看docker详细信息
      • 我们关注的信息
    • `docker search`:镜像搜索
    • `docker pull`:镜像拉取到本地
    • `docker push`:推送本地镜像到镜像仓库
    • `docker tag`:为镜像加(改)标签
    • `docker login`:登录镜像仓库
    • `docker run`:启动一个镜像(容器)
      • 前台启动
      • 后台启动
        • 【补】为什么我们上面两个容器,最后都会退出?
        • 【补】那我们怎么解决这个问题呢?
          • 1.既然我们直接不管他不行,那就先这个bash终端放到后台瞧瞧
          • 2.我们再来瞧瞧,是不是哪里理解错了
      • 我们再启动一个nginx容器试试
        • 问题来了,我们启用nginx容器的目的不是要做个网站吗,我们只知道容器内部用的是80端口,那我们在宿主机怎么访问呢?
      • 总结一下
    • `docker ps`:查看容器信息
    • `docker logs`:查看容器日志
      • 【补】除了用docker logs命令,我们还可以直接进入容器的上下文目录查看日志
    • `docker exec`:进入(正在运行的)指定容器
    • `docker cp`:文件的拷贝
      • 将本地文件(宿主机文件)拷入容器中
      • 将容器中的文件拷贝到宿主机中
    • `docker rmi`:删除镜像
    • `docker rm`:删除容器
    • `docker stop`:停止容器
    • `docker start`:重启容器
    • `docker history`:查看镜像更改记录
    • `docker commit`:提交容器状态为镜像到本地仓库
      • 我们再看看这个镜像的细节
      • 用这个镜像起一个容器
        • 在另一个窗口看看
        • 我们回到这个终端,退出容器试试
    • `docker build`:通过Dockerfile 构建镜像

什么是Docker

百度百科
在这里插入图片描述

Docker的优势

  1. 跨平台部署:Docker 可以在不同的操作系统和硬件平台上运行,可以轻松地将应用程序在开发、测试和生产环境中进行一致性的部署。

  2. 资源利用率和扩展性:Docker 可以通过容器的方式将应用程序与其依赖的运行时环境和依赖项隔离,从而提高资源的利用率并减少资源的消耗。此外,Docker 还支持快速水平扩展,使应用程序能够更好地适应变化的负载。

  3. 快速交付和部署:通过 Docker 容器化,可以实现快速的应用程序交付和部署。将应用程序和其依赖项打包到容器中,可以确保运行环境的一致性,并且在不同的环境中轻松地部署和迁移应用程序。

  4. 简化开发环境配置:Docker 可以帮助开发人员更轻松地配置开发环境。通过使用容器,可以将应用程序及其依赖项打包到一个镜像中,并在开发环境中进行部署,从而减少了由于开发环境配置不一致导致的问题。

  5. 提高应用程序的安全性:Docker 的容器隔离技术可以将应用程序与底层主机隔离开来,从而提高应用程序的安全性。每个容器都有自己的文件系统、进程空间和网络接口,使得应用程序之间互不干扰。

Docker的原理

我们现在可以知道Docker实际上就是一个应用程序,只不过自己带上了所需要的依赖。在考虑Docker的原理之前,我们先来看看在部署应用的方式是怎样一步步升级的

以部署一个Mysql程序为例

  1. 物理机

    1. 首先,我们要拥有一个操作系统(通常是Linux操作系统)

    2. 安装依赖环境(gcc、make、libncurses5-dev等编译工具)

    3. 安装应用程序

      此时如果我们要增加一台新的物理机来处理Mysql并发请求,就需要再进行一次环境的重复配置

  2. 虚拟化(KVM或其他技术)

    1. 将一个物理机虚拟成多个机器
    2. 可以将依赖环境打包成一个模板(VMware Workstation的克隆功能就是这样实现的)
  3. 容器化

    1. 以镜像为基础

      • 依赖环境的镜像
        • Java程序——Java的基础镜像
        • Php程序——Php的基础镜像
        • Nginx程序——Linux操作系统基础镜像
      • 根据基础镜像——放入自己的代码(或包)——>生成程序镜像
    2. 镜像按层存储
      在这里插入图片描述

      这样的方式可以让我们使用同于基础层来实现不同的功能,如上图,下面两层我们就可以直接套用模板了

    3. 启动时间快(秒级启动)

      由于与主机共享内核,不需要做操作系统的引导

    4. 可移植性好

      将运行某个应用所需要的环境全部打包到同一个容器中,不需要考虑兼容问题

      在这里插入图片描述

      如上图

      • Docker将用户程序与所需要调用的系统函数库一起打包
      • Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统的Linux内核来运行

Docker 的安装

参考官方文档

Docker 的 namespaces

Docker 使用 Linux 内核的 namespaces 功能来实现容器的隔离。namespaces 是 Linux 内核提供的一种机制,用于隔离系统资源,使得运行在不同 namespaces 中的进程拥有独立的视图和环境,而不会相互干扰。Docker 利用这一机制来创建轻量级的虚拟化环境,即容器。

  1. 进程命名空间(PID Namespace)

    进程命名空间允许容器中的进程拥有独立的进程树。这意味着容器内的进程ID(PID)与宿主机或其他容器中的进程ID是隔离的。每个容器都有自己的 PID 1,即容器内的第一个进程。

  2. 网络命名空间(NET Namespace)

    网络命名空间为每个容器提供独立的网络堆栈。容器拥有自己的网络接口、IP地址、路由表、防火墙规则等。这允许容器之间以及容器与宿主机之间进行隔离的网络通信。

  3. 挂载命名空间(MNT Namespace)

    挂载命名空间为每个容器提供独立的文件系统视图。容器可以有自己的 / 根目录,以及独立的挂载点,使得容器可以有自己独特的文件系统结构,而不会影响到宿主机或其他容器。

  4. 用户命名空间(USER Namespace)

    用户命名空间允许容器内的用户和组ID与宿主机上的用户和组ID不同。这意味着容器内的用户可以映射到宿主机上的不同用户,从而提供额外的安全隔离。

  5. UTS命名空间

    UTS命名空间允许容器拥有独立的主机名和NIS域名。这使得容器可以拥有自己的标识,而不需要与宿主机或其他容器共享。

  6. IPC命名空间

    IPC命名空间(Inter-process communication namespace)为容器提供独立的进程间通信资源,如消息队列、信号量和共享内存。这确保了容器之间的进程通信是隔离的。

通过这些 namespaces,Docker 实现了容器的隔离,使得每个容器都像是在独立的环境中运行,而实际上它们共享宿主机的内核。这种隔离机制是容器轻量级和高效的关键

Docker的常见命令

docker version:查看版本信息

在这里插入图片描述

  • Docker版本 Version: 24.0.7
  • 宿主机架构 OS/Arch:linux/amd64
  • 其他一些关键组件的版本

docker info 查看docker详细信息

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

我们关注的信息

  1. Client Debug Mode:false #客户端的debug模式,按需开启

  2. Server:Containers: 1 # 已构建1个容器Running: 0  # 正在运行的容器数量Paused: 0   Stopped: 1Images: 3    # 服务器保存的镜像数量
    

    docker ps -a

    在这里插入图片描述

    docker images

    在这里插入图片描述

  3. Storage Driver: overlay2存储驱动为overlay2(官方默认、性能好)

    常见驱动 aufs、overlay、brtfs

  4. Logging Driver: json-file:Docker 日志存储类型

    #json-file存储在本地的Docker根目录

  5. Docker Root Dir: /var/lib/docker:Docker根目录(可以更改)

    #最好使用一个单独的磁盘挂载该目录

  6. Runtimes: runc io.containerd.runc.v2:容器创建、销毁以及运行都是调用Runtime来执行

  7. Live Restore Enabled: false:开启后自动重启容器

docker search:镜像搜索

带officials为官方镜像

docker pull:镜像拉取到本地

  1. 本地有同一镜像,则不会重复拉取

  2. docker pull xxx.com/nginx:latest
    

    #从xxx.com的镜像仓库拉取标签为latest的nginx镜像;不加URL则表示从官网拉取

  3. 不加标签默认拉取最新版本

docker push:推送本地镜像到镜像仓库

docker push xxx.com/my-namespace/my-nginx:latest

docker tag:为镜像加(改)标签

dockertag my-nginx:latest xx.com/my-namespace/my-nginx:latest

docker login:登录镜像仓库

  • 不加仓库地址默认登陆官方镜像仓库

    docker login registry.cn-hangzhou.aliyuncs.com
    

    #登陆阿里云镜像站

docker run:启动一个镜像(容器)

前台启动

docker run -ti centos:7 bash  
# -ti:生成一个终端
# bash:指定终端为bash

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

后台启动

docker run -d centos:7 bash
【补】为什么我们上面两个容器,最后都会退出?
docker ps -a

在这里插入图片描述

我们先来看看他们创建的命令都是docker run xxx bash,最后都会生成一个终端

我们再到百度上搜搜看什么叫终端

在这里插入图片描述

咦,这一切不都说得通了,我们在前台启动的centos7容器是因为退出了容器bash前台终端,这个容器存在的意义也就没了,而后台启动的第二个容器,压根就没前台终端生成。

【补】那我们怎么解决这个问题呢?
1.既然我们直接不管他不行,那就先这个bash终端放到后台瞧瞧
docker run -d centos:7 bash&

在这里插入图片描述

表面上看是行了,我们再打开一个窗口看看现在这个容器在不在运行

在这里插入图片描述

结果还是不行,out

2.我们再来瞧瞧,是不是哪里理解错了

在这里插入图片描述

哦,那我们把这个bash换成其他的不需要前台输入的的命令试试

docker run -d centos:7 tail -f /dev/null
# 这里我们把这个容器当成生产队的驴来用了,持续读取一个空文件的尾部

看看结果,up!!!

在这里插入图片描述

docker run -d centos:7 sleep infinity
# 这里用sleep infinity 命令让容器宝宝独自等待~

在这里插入图片描述

嗨呀,小case啦,轻轻松松^_*

我们再启动一个nginx容器试试

docker run -d --name nginx_test nginx:test
# --name 指定容器名 后面跟依赖的镜像

在这里插入图片描述

问题来了,我们启用nginx容器的目的不是要做个网站吗,我们只知道容器内部用的是80端口,那我们在宿主机怎么访问呢?
  1. 我们先把他关了

    docker stop nginx_test
    
  2. 重新启动容器并添加端口映射

    docker run -d --name nginx_test -p 8080:80 nginx:test
    

    在这里插入图片描述

    这是肿么肥四,重名了?我们来看看

    docker ps -a
    

    在这里插入图片描述

    不还是你吗?你小子不听话就把你删了

    docker rm nginx_test
    

    接下来把所有的爱给他同父同母的同名兄弟

    docker run -d --name nginx_test -p 8080:80 nginx:test
    # -p [宿主机端口:容器端口] 添加端口映射
    

    在这里插入图片描述

  3. 再用宿主机的8080端口访问一下

    在这里插入图片描述

这不又好了吗,easy啊~_-

总结一下

bash可以换成任意命令

  • 如果是需要前台输入的命令,你得提供一个前台伪终端,提供内容给他
  • 后台可以直接运行的命令就无所谓了

docker ps:查看容器信息

  • docker ps :查看当前正在运行的容器

    docker ps
    

    在这里插入图片描述

  • docker ps -a:查看所有已经创建的容器(包括退出)

    docker ps -a
    

    在这里插入图片描述

  • docker ps -q:查看所有正在运行的容器ID(个人认为用处不大,不如docker ps)

  • docker ps -aq:查看容器的ID(同理用处不大,不如docker ps -a)

docker logs:查看容器日志

docker logs [容器名/容器ID]
docker logs -f [容器名] # 跟随模式,持续输出,动态查看,用户手动停止

我们来查看刚刚创建的nginx容器日志

docker logs nginx_test

在这里插入图片描述

【补】除了用docker logs命令,我们还可以直接进入容器的上下文目录查看日志

sudo su # 进入容器日志目录需要管理员权限
cd /var/lib/docker/containers/

在这里插入图片描述
这几个就是目前存在的容器

在这里插入图片描述
我们要看nginx容器的日志

cd  969d3c0012a74aa61284fe89be08fcfc17c83ac83674bed422e7b2fc086eb782/
# 不用敲全,用tab补全就行了
ls

在这里插入图片描述

 tail 969d3c0012a74aa61284fe89be08fcfc17c83ac83674bed422e7b2fc086eb782-json.log# 结果跟docker logs nginx_test 结果一样一样的

在这里插入图片描述

docker exec:进入(正在运行的)指定容器

docker exec -it nginx_test bash
ls #查看容器内的文件
uname -a #查看容器内部运行的操作系统
exit #退出容器

在这里插入图片描述

#进入容器后注意主机名和用户的变化

docker cp:文件的拷贝

docker cp [宿主机文件] [容器名(或者id):容器内部文件夹(或文件)]
docker cp [容器名(或者id):容器内部文件夹(或文件)]

将本地文件(宿主机文件)拷入容器中

在执行操作前我们先看看nginx的网页存放的位置

find . -name "html"
#莫名其妙的权限报错这会儿咱们就不管了

在这里插入图片描述

echo "hello nginx" > index.html&&cat inidex.html

在这里插入图片描述

docker cp index.html nginx_test:/usr/share/nginx/html/

在这里插入图片描述

这时我们再来看看nginx的主页什么样了

在这里插入图片描述

将容器中的文件拷贝到宿主机中

#先在根目录下执行ls命令并将结果重定向到test.txt中
ls >>test.txt

在这里插入图片描述

#在宿主机执行cp命令,并显示文件内容
docker cp nginx_test:./test.txt ls_test.txt&&cat ls_test.txt

在这里插入图片描述

docker rmi:删除镜像

我们先看看机子上现有哪些镜像

docker images

在这里插入图片描述

居然有两个不知道什么内容的镜像,那把他俩都删了吧,红尘作伴,潇潇洒洒,说干就干

docker rmi  2a36393edaf1  605c77e624dd

再看看,已经不在了

在这里插入图片描述

docker rm:删除容器

我们先来看看有哪些容器不乖了

在这里插入图片描述

好嘞,就决定是你了,你都退出了,那我就对你不客气咯

docker rm [容器名(或容器ID)]
docker rm inspiring_shannon

在这里插入图片描述

害群之马没啦,一片祥和

docker stop:停止容器

docker stop [容器名/容器ID]
docker ps
docker stop nginx_test
docker ps

在这里插入图片描述

docker start:重启容器

docker stop [容器名/容器ID]
docker ps
docker start nginx_test
docker ps

在这里插入图片描述

docker history:查看镜像更改记录

我们先看看有哪些镜像

docker images

在这里插入图片描述

docker history  centos:latest
# 我们选择占用空间最大的centos:latest来看

在这里插入图片描述

docker commit:提交容器状态为镜像到本地仓库

docker commit <参数> <容器id> <仓库>[:标签]>
# -a, --author:指定作者信息,格式为 name <email>。
# -c, --change:应用 Dockerfile 指令到创建的镜像。
# -m, --message:提交信息,描述这次提交的更改。
# --pause:是否在提交时暂停容器,默认为 true
docker commit -a "yy" -m "my_nginx_test_images1" nginx_test my_nginx:v1.0
# -a 参数一般是告诉别人作者的信息,我在这只是本地使用提交,其实加不加无所谓

在这里插入图片描述

我们再看看这个镜像的细节

docker history my_nginx

在这里插入图片描述

显示了提交时的信息

用这个镜像起一个容器

docker run -it --rm --name nginx_test1 mynginx:v1.0 bash

在这里插入图片描述

在另一个窗口看看
docker ps

在这里插入图片描述
成功了

我们回到这个终端,退出容器试试
exit
docker ps

咦,nginx_test1怎么没了,是不是退出啦?

在这里插入图片描述

我们再看看

docker ps -a

在这里插入图片描述
还是没有啊,燕子,没有你我怎么活呀

这时候一旁看戏的nginx_test就要说了:你这家伙,创建人家的时候是不是干了什么事情

我们往上看看命令

在这里插入图片描述
哦,原来罪魁祸首是这个--rm参数,他让容器运行结束后自动删除了(这样做的好处是,减少exit状态容器的出现)

docker build:通过Dockerfile 构建镜像

docker build -t <镜像名称[:标签]> <上下文目录(dockerfile所在目录)>
# 标签缺省则默认为latest

我们现在已经有一个dockerfile文件了,存放在./Dockerfile目录下

docker build -t nginx_test_dockerfile ./Dockerfile_task/

在这里插入图片描述

看看有咩有多一个叫nginx_test_dockerfile的镜像

docker images

在这里插入图片描述

相关文章:

[Docker学习笔记]Docker的原理Docker常见命令

文章目录 什么是DockerDocker的优势Docker的原理Docker 的安装Docker 的 namespaces Docker的常见命令docker version:查看版本信息docker info 查看docker详细信息我们关注的信息 docker search:镜像搜索docker pull:镜像拉取到本地docker push:推送本地镜像到镜像仓库docker …...

【ESP 保姆级教程】小课设篇 —— 案例:20240507_esp01s+UNO的智能浇水系统

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2024-09-30 ❤️❤️ 本篇更新记录 2023-09-30 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...

如何设置MySQL分布式架构主键ID,为什么不能使用自增ID或者UUID做主键?

MySQL分布式架构主键ID的设置方法 雪花算法&#xff08;Snowflake&#xff09; 原理&#xff1a;雪花算法是一种生成分布式唯一ID的算法。它由64位二进制数组成&#xff0c;结构如下&#xff1a;1位符号位&#xff08;固定为0&#xff09; 41位时间戳&#xff08;表示从一个固…...

服务器虚拟化详解

服务器虚拟化详解 服务器虚拟化是一种将物理服务器资源转化为虚拟服务器资源的技术&#xff0c;它允许在一台物理服务器上运行多个虚拟服务器&#xff0c;每个虚拟服务器都拥有独立的操作系统、应用程序和资源配置。这种技术极大地提高了服务器的利用率、灵活性和可扩展性&…...

医疗陪诊APP开发实战:从互联网医院系统源码开始

本文将从互联网医院系统源码出发&#xff0c;深入探讨医疗陪诊APP的开发实战。 一、从互联网医院系统源码入手 开发医疗陪诊APP的基础在于互联网医院系统的源码。互联网医院系统通常包括以下几个模块&#xff1a; 1.用户管理&#xff1a;用户注册、登录、信息管理等功能。 …...

jenkins 构建报错ERROR: Error fetching remote repo ‘origin‘

问题描述 修改项目的仓库地址后&#xff0c;使用jenkins构建报错 Running as SYSTEM Building in workspace /var/jenkins_home/workspace/【测试】客户端/client-fonchain-main The recommended git tool is: NONE using credential 680a5841-cfa5-4d8a-bb38-977f796c26dd&g…...

初识C#(三)- 数组

我有17栋楼&#xff0c;在不同地域&#xff0c;都是不同价格租出去给不同的人~ 文章目录 前言一、数组1.1 我有17栋楼 - 数组的声明1.2 包租公&包租婆 - 数组赋值1.3 每个月都要交租的苦逼租客 - 数组的使用 二、字符串2.1 字符串的使用方法 总结 前言 本篇笔记重点描述C#…...

黑马智数Day3

渲染基础Table列表 封装接口&#xff1a; export function getCardListAPI(params) {return request({url: /parking/card/list,params}) } 具体实现&#xff1a; import { getCardListAPI } from /apis/cardexport default {data() {return {// 请求参数params: {page: 1,pa…...

【Java】再一次踩了整数溢出的坑

【Java】再一次踩了整数溢出的坑 一、起因原题示例 1示例 2提示 我的代码提交结果 二、思考修改后的代码如下 三、知识点1. int m l ((r - l) / 2)解释 2. if (m < x / m)解释 四、结尾 一、起因 我在做【力扣】69.x 的平方根 一题的时候&#xff0c;明明觉得逻辑没问题&…...

Windows开发工具使用技巧大揭秘:让编码效率翻倍的秘籍!

【ACM出版|厦大主办|EI稳定检索】第五届计算机科学与管理科技国际学术会议&#xff08;ICCSMT 2024&#xff09;_艾思科蓝_学术一站式服务平台 更多学术会议请看&#xff1a;学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录 引言 1. 快捷键大全&#xff1a;加速你的编码…...

CSS外边距

元素的外边距&#xff08;margin&#xff09;是围绕在元素边框以外&#xff08;不包括边框&#xff09;的空白区域&#xff0c;这片区域不受 background 属性的影响&#xff0c;始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性&#xff0c;HTML 元素就是不会…...

C++ set,multiset与map,multimap的基本使用

1. 序列式容器和关联式容器 string、vector、list、deque、array、forward_list等STL容器统称为序列式容器&#xff0c;因为逻辑结构为线性序列的数据结构&#xff0c;两个位置存储的值之间一般没有紧密的关联关系&#xff0c;比如交换一下&#xff0c;他依旧是序列式容器。顺…...

评估潜力无限:解读自闭症患者的工作能力评估

在星贝育园这片充满爱与希望的土地上&#xff0c;我们不仅见证了无数自闭症儿童在康复训练中的点滴进步&#xff0c;更深刻理解了他们内在潜力的无限可能。自闭症&#xff0c;这一复杂的神经发育障碍&#xff0c;常常让外界对其患者的工作能力产生误解和偏见。然而&#xff0c;…...

js 实现视频封面截图

今天给大家分享一下&#xff0c;如何实现视频封面截取功能&#xff0c;这里主要用到了 HTML5 的 canvas 相关的 api 和 js 相关的一些知识&#xff0c;话不多说&#xff0c;直接上代码&#xff1a; <template><div><div class"margin-tb-sm"><…...

Hadoop FileSystem Shell 常用操作命令

提示&#xff1a;本文章只总结一下常用的哈&#xff0c;详细的命令大家可以移步官方的文档&#xff08;链接贴在下面了哈&#x1f923;&#xff09;— HDFS官方命令手册链接。 目录 1. cat 命令&#xff1a;查看 HDFS 文件内容2. put 命令&#xff1a;将本地文件上传到 HDFS3.…...

uniapp EChars图表

1. uniapp EChars图表 &#xff08;1&#xff09;Apache ECharts 一个基于 JavaScript 的开源可视化图表库   https://echarts.apache.org/examples/zh/index.html &#xff08;1&#xff09;官网图例 &#xff08;2&#xff09;个人实现图例 1.1. 下载echart 1.1.1. 下…...

最新版ingress-nginx-controller安装 使用host主机模式

最新版ingress-nginx-controller安装 使用host主机模式 文章目录 最新版ingress-nginx-controller安装 使用host主机模式单节点安装方式多节点高可用安装方式 官方参考链接&#xff1a; https://github.com/kubernetes/ingress-nginx/ https://kubernetes.github.io/ingress-ng…...

实习问题(配置文件获取参数)

Java中用SpringBoot框架&#xff0c;当我们要获取配置文件yml里的参数时&#xff0c;用Value注解获取 如果配置文件中没有srvSealUploadPath这个参数的话&#xff0c;可以用Value("${srvSealUploadPath:data/idoc/temp}")&#xff0c;这个的意思是&#xff0c;如果配…...

C#测试调用Ghostscript.NET浏览PDF文件

Ghostscript.NET是针对Ghostscript的C#封装库&#xff0c;支持解析PostScript语言、操作PDF文件等。使用Ghostscript.NET的GhostscriptViewer 模块可以以图片形式查看PDF文档。本文学习并测试调用Ghostscript.NET模块打开及浏览PDF文件的基本用法。   Ghostscript.NET目前主要…...

MySQL本地安装步骤

下载MySQL ZIP压缩包 访问MySQL官网&#xff08;https://www.mysql.com/&#xff09;或下载页面&#xff08;https://dev.mysql.com/downloads/mysql/&#xff09;。 在下载页面选择“MySQL Community Server”作为下载目标。 根据你的操作系统&#xff08;Windows&#xff09;…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...