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

docker入门篇

使用docker可以很快部署相同的环境,这也是最快的环境构建,接下来就主要对docker中的基础内容进行讲解.Docker 是一个用于开发、交付和运行应用程序的开源平台,它可以让开发者将应用程序及其依赖打包到一个容器中,然后在任何环境中运行这个容器,实现了应用的跨平台性和一致性。

1. Docker 架构

仓库富含镜像,镜像中包含运行一个容器所需的所有文件系统,容器是镜像的运行实例,镜像是容器的基础,对一个镜像可以创建多个容器.

仓库

仓库(Repository):用于存储镜像的地方,可以分为公共仓库和私有仓库。公共仓库如 Docker Hub,提供了大量的官方和社区镜像,供用户下载和使用。私有仓库则用于企业或个人在内部网络中存储和管理自己的镜像。

镜像

镜像(Image):镜像可以看作是一个只读的模板,它包含了运行一个容器所需的所有文件系统内容,包括操作系统、应用程序、库和配置文件等。镜像是创建容器的基础。

容器

容器(Container):容器是镜像的运行实例。可以将其理解为一个轻量级的、独立的运行环境,其中包含了应用程序及其所有依赖项,容器之间相互隔离,互不影响。

2. 基本操作

安装docker

Windows
下载:访问 Docker 官方网站,选择适合 Windows 系统的 Docker Desktop 版本进行下载。www.docker.com
安装:运行下载好的安装包,按照安装向导完成安装。安装完成后,启动 Docker Desktop。
验证:在命令提示符或 PowerShell 中输入 docker --version,若显示 Docker 版本信息,则说明安装成功。

Linux系统
更新软件包索引:在终端中运行

sudo apt-get update

安装必要的包:运行

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

添加Docker官方GPG密钥:运行

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加Docker仓库:运行

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再次更新软件包索引:运行

sudo apt-get update

安装Docker CE:运行

sudo apt-get install docker-ce

验证:运行 sudo docker --version,若显示 Docker 版本信息,则说明安装成功。

查看docker的版本

sudo docker --version

在这里插入图片描述

镜像操作

搜索镜像

docker search [镜像名称]

如docker search nginx,可以搜索 Docker Hub 上的镜像

在这里插入图片描述

拉取镜像

sudo docker pull [镜像名称]

如 docker pull nginx。docker pull ubuntu:latest会从 Docker Hub 上拉取最新的 Ubuntu 镜像。
测试拉取一个最简单的镜像,镜像源为docker.m.daocloud.io,镜像名为hello-world

sudo docker pull docker.m.daocloud.io/hello-world
sudo docker pull ubuntu:latest

查看镜像:通过docker images命令可以列出本地已有的镜像,显示镜像的名称、标签、ID、创建时间和大小等信息。

sudo docker images

删除镜像:用docker rmi命令删除本地镜像。例如,docker rmi ubuntu:latest将删除指定的 Ubuntu 镜像。如果镜像正在被容器使用,则需要先停止相关容器才能删除镜像。

docker rmi [镜像ID]

容器操作

创建并启动容器:运行 docker run [选项] [镜像名称],如 docker run -d -p 80:80 nginx,其中 -d 表示后台运行,-p 用于端口映射

docker run [选项] [镜像名称]

docker run -it ubuntu:latest /bin/bash会基于 Ubuntu 镜像创建一个容器,并以交互模式进入容器的 bash shell。其中,-i表示保持标准输入流打开,-t表示分配一个伪终端。
查看容器:运行 docker ps 查看正在运行的容器,使用 docker ps -a 查看所有容器

sudo docker ps -a 

docker ps命令用于查看正在运行的容器,若要查看所有容器(包括已停止的),可使用docker ps -a。该命令会显示容器的 ID、名称、镜像、状态、运行时间等信息。

docker stop [容器ID] 
docker start [容器ID]

停止和启动容器:docker stop命令用于停止正在运行的容器,例如docker stop 8d8f81da12b5。要重新启动已停止的容器,可使用docker start container_id。

docker rm [容器ID]

删除所有容器: sudo docker rm -f $(sudo docker ps -aq)
停止所有容器sudo docker stop $(sudo docker ps -q)
删除所有镜像:sudo docker rmi $(sudo docker images)

删除容器:使用docker rm命令删除容器。例如,docker rm container_id,但容器必须先停止才能被删除。若要强制删除正在运行的容器,可以使用docker rm -f container_id。

docker exec -it [容器ID] /bin/bash

进入容器:当容器在运行时,可以使用docker exec命令进入容器。例如,docker exec -it container_id /bin/bash可以进入指定容器并打开一个 bash 终端。

停止容器使用 docker stop,删除容器使用 docker rm,删除镜像使用 docker rmi
查看容器日志:使用 docker logs [容器ID] 查看容器的日志信息
构建镜像:通过 docker build -t [镜像名称] . 命令可以根据 Dockerfile 构建镜像
推送镜像:运行 docker push [镜像名称] 将本地镜像推送到 Docker Hub

常见问题

linux环境下更换docker源

先修改docker的daemon.json文件

sudo gedit /etc/docker/daemon.json

加入源

    "registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com","https://cjie.eu.org"]

重启docker服务

sudo systemctl daemon-reload 
 sudo systemctl restart docker

docker配置代理

如果docker镜像创建的过程中需要配置网络,可以直接添加本地的配置:

sudo gedit /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com","https://cjie.eu.org"],"proxies": {"http-proxy": "http://127.0.0.1:7890","https-proxy": "http://127.0.0.1:7890"}
}

在这里插入图片描述
重启docker服务

sudo systemctl daemon-reload 
 sudo systemctl restart docker

这样就能正常访问github了

windows环境下更换docker源

打开docker-desktop客户端
在这里插入图片描述
设置一下docker engine:
在这里插入图片描述
添加源:

    "registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com","https://cjie.eu.org"]

应用保存即可
当然也可以直接修改docker的daemon.json文件:
以本机使用 Administrator 账户为例,配置文件位于 C:\Users\Administrator.docker\目录下的daemon.json
在这里插入图片描述
打开daemon.json文件,添加源地址即可.
然后去reset一下:
在这里插入图片描述
在这里插入图片描述
也可以完成设置

  1. Dockerfile
    Dockerfile 是一个文本文件,用于定义如何构建镜像。它包含了一系列的指令,描述了镜像的基础环境、安装的软件包、配置信息以及容器启动时要执行的命令等。通过编写 Dockerfile,可以方便地创建自定义镜像,并且能够保证镜像的可重复性和一致性。例如,以下是一个简单的 Dockerfile 示例:
# 使用官方的Python镜像作为基础镜像
FROM python:3.9# 设置工作目录
WORKDIR /app# 将当前目录下的所有文件复制到容器的/app目录下
COPY. /app# 安装项目所需的依赖
RUN pip install -r requirements.txt# 设置容器启动时要执行的命令
CMD ["python", "app.py"]
  1. 数据管理
    数据卷(Volumes):数据卷是一个可供容器使用的特殊目录,它可以绕过联合文件系统,提供了一种在容器和宿主机之间共享数据的方式。数据卷可以在容器创建时指定,并且可以在多个容器之间共享。例如,可以使用docker run -v /host/path:/container/path ubuntu:latest将宿主机的/host/path目录挂载到容器的/container/path目录。
    容器数据持久化:通过数据卷,即使容器被删除,数据卷中的数据也不会丢失,从而实现了容器数据的持久化。这对于保存应用程序的配置文件、数据库数据等非常重要。

  2. 网络配置与进阶使用
    容器网络模式:Docker 支持多种网络模式,如桥接模式(默认)、主机模式、none 模式等。在桥接模式下,容器会连接到一个虚拟的网桥,通过网桥与宿主机和其他容器进行通信。主机模式则让容器直接使用宿主机的网络,容器的网络配置与宿主机相同。none 模式下,容器没有网络配置,需要用户自行配置网络。
    容器间通信:可以通过网络别名或 IP 地址在同一网络中的容器之间进行通信。例如,在一个 Docker 网络中,容器 A 可以通过容器 B 的网络别名或 IP 地址访问容器 B 提供的服务。
    Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。你可以使用 YAML 文件来配置应用程序的服务、网络和卷,然后通过一个命令来启动整个应用程序。
    Docker Swarm 是 Docker 的原生集群工具,可以将多个 Docker 主机组合成一个单一的虚拟 Docker 主机,从而实现容器的编排和管理

举一个例子来使用docker
首先要有一个Dockerfile:

FROM ros:melodic-ros-coreSHELL ["/bin/bash", "-c"]ENV DEBIAN_FRONTEND noninteractiveRUN apt-get update && \apt-get install -y curl git python-pip && \pip install -U --no-cache-dir supervisor supervisor_twiddler rosdep && \rosdep init && \apt-get clean# OSRF distribution is better for gazebo
RUN sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' && \curl -L http://packages.osrfoundation.org/gazebo.key | apt-key add -# RUN apt-get update && \RUN set -eux; \
for i in $(seq 1 5); do \if apt-get update; then \break; \else \echo "Error: apt-get failed (attempt $i of 5). Retrying..." >&2; \sleep 1; \fi; \
done; \
if [ "$i" = 5 ]; then \echo "Error: apt-get failed after 5 attempts." >&2; \exit 1; \
fiRUN set -eux; \
for i in $(seq 1 5); do \if apt-get install -y ros-melodic-gazebo-plugins ros-melodic-xacro ros-melodic-controller-manager ros-melodic-robot-state-publisher; then \break; \else \echo "Error: apt-get failed (attempt $i of 5). Retrying..." >&2; \sleep 1; \fi; \
done; \
if [ "$i" = 5 ]; then \echo "Error: apt-get failed after 5 attempts." >&2; \exit 1; \
fiRUN git clone --depth 1 https://github.com/osrf/gazebo_models.git /tmp/gazebo_models && \cp -r /tmp/gazebo_models/cafe_table /usr/share/gazebo-9/models/ && \cp -r /tmp/gazebo_models/first_2015_trash_can /usr/share/gazebo-9/models/ && \cp -r /tmp/gazebo_models/mailbox /usr/share/gazebo-9/models/ && \cp -r /tmp/gazebo_models/table_marble /usr/share/gazebo-9/models/ && \rm -r /tmp/gazebo_modelsRUN mkdir /srcADD src /srcRUN source /opt/ros/melodic/setup.bash && \mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src && \catkin_init_workspace && \git clone --depth 1 -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git && \git clone --depth 1 -b melodic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git && \cp -r /src . && \cd .. && \rosdep update && rosdep install --from-paths src --ignore-src -r -y && \catkin_make -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/ros/melodic install && \apt-get clean && rm -r ~/catkin_wsADD supervisord.conf /etc/supervisor/supervisord.confVOLUME /opt/ros/melodic/share/turtlebot3_descriptionRUN echo "export ROBOT_HOST=hiwonder LIDAR_TYPE=G4" >> /opt/ros/$ROS_DISTRO/setup.bashCMD ["/usr/local/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]

一个supervisord.conf:

[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700[inet_http_server]
port = :9001[supervisord]
nodaemon=true[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface[rpcinterface:twiddler]
supervisor.rpcinterface_factory = supervisor_twiddler.rpcinterface:make_twiddler_rpcinterface[supervisorctl]
serverurl=unix:///var/run/supervisor.sock[program:simulator]
# command=/ros_entrypoint.sh roslaunch turtlebot3_gazebo turtlebot3_autorace.launch
command=/ros_entrypoint.sh roslaunch hiwonder_gazebo worlds.launch
# environment=TURTLEBOT3_MODEL=burger
autostart=true
autorestart=true
stopwaitsecs=30
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

有了dockerfile过后就可以创建docker镜像

sudo docker build -f Dockerfile -t devrt/simulator-robot:latest .

以当前目录下的 Dockerfile 为基础,使用当前目录作为构建上下文,构建一个名为 devrt/simulator-robot 且标签为 latest 的 Docker 镜像。构建过程中,Docker 会根据 Dockerfile 中的指令执行一系列操作,如安装软件包、复制文件、设置环境变量等,最终生成一个可运行的镜像。
在这里插入图片描述
在这里插入图片描述
之前创建过,所以直接创建好了镜像了
接下来就需要创建容器了,比如sudo docker run devrt/simulator-robot:latest,或者后台持续运行sudo docker run -d devrt/simulator-robot:latest等等,但是我们希望的是创建多个容器,所以运行的是

sudo docker compose up

对应的docker-compose.yaml为

version: '2.3'
services:xserver:image: devrt/xserveripc: hostsecurity_opt:- seccomp:unconfinedports:- "3000:80"healthcheck:test: ["CMD-SHELL", "test -e /tmp/.X11-unix/X0"]interval: "1s"retries: 20simulator:image: devrt/simulator-robotipc: hostsecurity_opt:- seccomp:unconfinedenvironment:- DISPLAY=:0- GAZEBO_MODEL_PATH=/home/developer/models:$GAZEBO_MODEL_PATH  # Add models to Gazebo pathvolumes_from:- xservervolumes:- ./ros/models:/home/developer/models:rw  # Mount local models folder to simulator- ./ros/worlds/turtlebot3_autorace.world:/opt/ros/melodic/share/turtlebot3_gazebo/worlds/turtlebot3_autorace.world:ro  # Replace the world filedepends_on:- xserverworkspace:# env_file:#   - .envimage: devrt/ros-devcontainer-vscode:noetic-desktopipc: hostsecurity_opt:- seccomp:unconfinedports:- "3001:3000"- "3002:8888"volumes:- workspace:/workspace- .src:/workspace/src:rw  # Mount local src to /workspace in containerenvironment:- DISPLAY=:0- ROS_MASTER_URI=http://simulator:11311/volumes_from:- xserver- simulatordepends_on:- xserver
volumes:workspace:

services 部分定义了在 Docker Compose 中要运行的各个服务,每个服务对应一个或多个容器。
所以相当于他会自动去拉取其他镜像比如devrt/xserver:
在这里插入图片描述

在这里插入图片描述
这里当然是创建了三个容器,有些镜像会自动从hub上进行下载
以上测试文件请下载相关绑定的资源

下一次来看如何打包一个docker.

相关文章:

docker入门篇

使用docker可以很快部署相同的环境,这也是最快的环境构建,接下来就主要对docker中的基础内容进行讲解.Docker 是一个用于开发、交付和运行应用程序的开源平台,它可以让开发者将应用程序及其依赖打包到一个容器中,然后在任何环境中运行这个容器&#xff0…...

python语法

1. 前面先写import导入模块,完整的语法是: [from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名] 语法还可以是: from 模块名 import 功能名 如果import整个模块的话,需要用.功能名(),来用这个功能&#xff…...

Dify使用部署与应用实践

最近在研究AI Agent,发现大家都在用Dify,但Dify部署起来总是面临各种问题,而且我在部署和应用测试过程中也都遇到了,因此记录如下,供大家参考。Dify总体来说比较灵活,扩展性比较强,适合基于它做…...

微信小程序接入DeepSeek模型(火山方舟),并在视图中流式输出

引言: DeepSeek,作为一款先进的自然语言处理模型,以其强大的文本理解和生成能力著称。它能够处理复杂的文本信息,进行深度推理,并快速给出准确的回应。DeepSeek模型支持流式处理,这意味着它可以边计算边输…...

前端性能优化指标及优化方案

前端性能优化的核心目标是 提高页面加载速度、降低交互延迟、减少资源占用。常见的 Web 性能指标包括 LCP、FID、CLS、TTFB、TTI、FCP 等。 关键性能指标(Web Vitals) 指标优化方案 (1)LCP(Largest Contentful Paint&…...

正则化介绍

简单介绍 正则化是用于控制模型的复杂度,防止模型在训练数据上过度拟合(overfitting)。正则化通过在模型的损失函数中引入额外的惩罚项,来对模型的参数进行约束,从而降低模型的复杂度。这个额外的惩罚通常与模型参数的…...

AI时代:数字媒体的无限可能

人工智能和数字媒体技术正深刻改变着我们的生活。通过大数据分析、机器学习等技术,人工智能不仅能精准预测用户需求,还能在医疗、金融等多个领域提供高效解决方案。与此同时,数字媒体技术的进步使得信息传播更加迅速和广泛。社会计算作为新兴…...

自动化爬虫drissionpage

自动化爬虫drissionpage官网 自动化测试框架:DrissionPage DrissionPage调用工具汇总 网络爬虫工具比较-DrissionPage、Selenium、Playwright...

禁毒知识竞赛主持稿串词

尊敬的各位领导、各位来宾、参赛选手们:大家好! 在市禁毒委员会的领导下,今年我市开展了以“参与禁毒战争,构建和谐社会”为主题的禁毒宣传月活动。为了进一步加强我市禁毒宣传力度,促进社会治安的好转和社会主义物质文…...

【JDK17】Jlink一秒生成精简的JRE

之前介绍了 Java17模块化的JDK,模块化后按需使用Jlink 用于精简生成 JRE 环境,这让快速的开发环境增强了编码的愉悦感。在实际生产环境中使用 mave 进行项目的构建,其次再是精简 JRE 缩小容器镜像体积,为实现一体化的流程&#xf…...

机器学习周报--文献阅读

文章目录 摘要Abstract 1 文章内容1.1 模型结构1.1.1 LSTMAT的结构设置1.1.2 AWPSO算法优化模型 1.2 实验与结果讨论1.2.1 处理缺失数据1.2.2 模型评估指标1.2.3 比较实验1.2.4 消融实验(ABLATION EXPERIMENTS) 2相关知识2.1 自适应权重粒子群优化&#…...

硬件地址反序?用位操作为LED灯序“纠偏”。反转二进制数即可解决

特别有意思,LED的灯序与其硬件地址刚好相反,没办法直接通过加1实现二进制进位的亮灯操作,查了一些资料说用数组和switch实现,觉得太麻烦了,思索良久,就想到了反转二进制数解决这个问题。 reverse_bits( )是…...

A* floyd算法 bellman-ford

求源点到目标点最短距离 排序的里面要加上与目标点一个预估距离,与dj算法差距只有这儿 预估要小于等于真实的最短距离,吸引力要适当 越接近实际距离越快 #include<bits/stdc.h> using namespace std;// 方向向量&#xff1a;上、右、下、左 const vector<int> …...

【数据挖掘】KL散度(Kullback-Leibler Divergence, KLD)

KL散度&#xff08;Kullback-Leibler Divergence, KLD&#xff09; 是衡量两个概率分布 P 和 Q之间差异的一种非对称度量。它用于描述当使用分布 Q 逼近真实分布 P 时&#xff0c;信息丢失的程度。 KL散度的数学定义 给定两个离散概率分布 P(x)和 Q(x)&#xff0c;它们在相同的…...

Linux shell 进度条

概述 在 Linux Shell 中实现一个简单的进度条可以通过 printf 命令结合特殊字符来实现&#xff0c;以下是一个示例脚本&#xff0c;它模拟了一个从 0% 到 100% 的进度条。 作用 反馈任务进度&#xff1a;让用户直观了解任务执行的进展情况&#xff0c;比如文件拷贝、系统更新…...

ctfshow web刷题记录

RCE 第一题 eval代码执行 &#xff1a; 1、使用system 加通配符过滤 ?csystem("tac%20fl*") ; 2、反字节执行 xxx %20 echo 反字节 3、变量转移 重新定义一个变量 让他代替我们执行 4、伪协议玩法 ?cinclude$_GET[1]?>&1php://filter/readc…...

leetcode日记(101)填充每个节点的下一个右侧节点指针Ⅱ

意料之中有这题&#xff0c;将之前的思路换一下即可&#xff0c;层序遍历的思路将record&#xff08;记录下一个循环的次数&#xff09;手动加减。 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL)…...

大语言模型微调和大语言模型应用的区别?

1. 基本概念 微调&#xff08;Fine-tuning&#xff09; 定义&#xff1a;微调是指在预训练大语言模型的基础上&#xff0c;通过在特定领域或任务的数据上进一步训练&#xff0c;从而使模型在该特定任务上表现更优。 目的&#xff1a;适应具体的任务需求&#xff0c;比如法律文…...

Leetcode-131.Palindrome Partitioning [C++][Java]

目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-131.Palindrome Partitioninghttps://leetcode.com/problems/palindrome-partitioning/description/131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09;131. 分割回文串 - 给你一个字符串 s&#xff0c;请你…...

DeepSeek:开启机器人智能化的革命性突破

引言 在2025年全球机器人产业格局中&#xff0c;中国AI公司深度求索&#xff08;DeepSeek&#xff09;凭借开源机器人智能控制系统DeepSeek-R1&#xff0c;正在掀起一场从底层算法到应用生态的技术革命。不同于传统机器人依赖预设程序的局限&#xff0c;DeepSeek通过深度推理能…...

解决load()文件报错zipfile.BadZipFile: File is not a zip file

报错如下图&#xff1a; 有可能是资源没有关闭造成了错误&#xff0c;这个网上已经有很多解决方案了&#xff0c;大家可自行查阅。 如果你在别的地方都没有找到解决问题&#xff0c;那么可能是以下这种情况。 1、描述 我在服务器上的代码load()加载文件时&#xff0c;出现了…...

【Tools】Visual Studio Code安装保姆级教程(2025版)

00. 目录 文章目录 00. 目录01. Visual Studio Code概述02. Visual Studio Code下载03. Visual Studio Code安装04. Visual Studio Code配置05. 附录 01. Visual Studio Code概述 Visual Studio Code&#xff08;简称 VS Code&#xff09;是由微软开发的一款免费、开源且跨平台…...

Python库安装报错解决思路以及机器学习环境配置详细方案

文章目录 概要第三方库gdalmahotasgraphviznltk-datalazypredictscikit-surprisenb_extensions 机器学习GPU-torch安装torch_geometric安装ubuntu安装显卡驱动dlib安装torch-cluster、torch-scatter、torch-sparse和torch-geometricYOLOapextensorflow-gpu Python && P…...

ETIMEDOUT 网络超时问题

根据日志显示&#xff0c;你遇到的 ​**ETIMEDOUT 网络超时问题** 是由于 npm 无法连接到企业内部的 Nexus 仓库&#xff08;http://192.168.55.12:8001&#xff09;导致的。以下是具体原因和解决方案&#xff1a; 一、问题根源 ​Nexus 仓库不可达 日志中所有依赖包均尝试从 h…...

superset部署记录

具备网络条件的&#xff0c;完全可以一键部署&#xff0c;不需要折腾。网络条件不具备时&#xff0c;部署记录留存备查。 1、正常模式 详细介绍参考&#xff1a;【开源项目推荐】Apache Superset——最优秀的开源数据可视化与数据探索平台-腾讯云开发者社区-腾讯云 (tencent.c…...

todolist docker 小工具

参考链接 前排提示 没有中文&#xff0c;可使用浏览器 翻译 前提 安装docker安装docker-compose 下载仓库 git clone https://github.com/JordanKnott/taskcafe进行安装 cd taskcafe docker-compose -p taskcafe up -d服务启动后会监听在 3333 端口上&#xff0c;通过浏览器…...

PowerToys:解锁Windows生产力的终极武器

欢迎来到涛涛聊AI。今天想着把win键和加号的组合键映射为win键和Q键盘。经过搜索发现PowerToys。 在数字化办公的浪潮中&#xff0c;效率是职场人永恒的追求。微软推出的 PowerToys 作为Windows官方系统强化工具&#xff0c;凭借其强大的功能和开源免费的特性&#xff0c;已成为…...

内存管理:

我们今天来学习一下内存管理&#xff1a; 1. 内存分布&#xff1a; 我们先来看一下我们下面的图片&#xff1a; 这个就是我们的内存&#xff0c;我们的内存分为栈区&#xff0c;堆区&#xff0c;静态区&#xff0c;常量区&#xff1b; 我们的函数栈帧开辟消耗的内存就是我们…...

ElementUI 表格中插入图片缩略图,鼠标悬停显示大图

如何在 ElementUI 的表格组件 Table 中插入图片缩略图&#xff0c;通过鼠标悬停显示大图&#xff1f;介绍以下2种方式&#xff1a; 方法1&#xff1a;直接在模板元素中插入 <template><el-table :data"tableData"><el-table-column label"图片…...

从被动响应到主动预见:智能可观测性技术的变革与实践

思维导图 一、引言 &#x1f303; 想象一下&#xff0c;在一个深夜 &#x1f319;&#xff0c;你的关键业务系统突然出现故障 &#x1f6a8;。传统情况下&#xff0c;你可能会收到大量不相关的告警 &#x1f4f1;&#x1f4ac;&#x1f4ac;&#x1f4ac;&#xff0c;然后花费…...

【Linux】五种 IO 模型与非阻塞 IO

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; 重新理解 IO&#x1f98b; 为什么说网络问题的本质是 I/O 问题&#xff1f;&#x1f380; 从数据流动看网络通信&#x1f380; 网络 I/O 的瓶颈 &#x1f…...

从零开始开发纯血鸿蒙应用之无框截图

从零开始开发纯血鸿蒙应用 〇、前言二、元素定位1、理论依据2、使用指导 三、认识 ComponentSnapshot1、get 方法2、获取 ComponentSnapshot 实例 四、实现组件截图1、掌握图片编码能力2、保存到图库3、实现组件截图 〇、前言 截图&#xff0c;或者说截屏&#xff0c;已经是每…...

【商城实战(36)】UniApp性能飞升秘籍:从渲染到编译的深度优化

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

无人自助空间智能管理系统解决方案(深度优化版)

无人自助空间智能管理系统解决方案&#xff08;深度优化版&#xff09; 一、行业痛点与系统价值 传统管理依赖人工&#xff1a; 人工管理模式下&#xff0c;易出现人为失误&#xff0c;如计费错误、资源分配不当等。同时&#xff0c;人工操作效率低下&#xff0c;在高峰时段…...

pycharm配置镜像源【pycharm最新版(23.2.5及以上)方法】

经常遇到pycharm中无法安装或者安装慢的问题&#xff0c;纠结了好久&#xff0c;终于找到这个解决办法了。 为什么要配置镜像源&#xff1a; 因为Python的包管理工具pip一般从PyPI&#xff08;Python Package Index&#xff09;下载安装包&#xff0c;但是PyPI位于国外&#x…...

探索ima.copilot:个人知识库搭建的AI新利器

在信息爆炸的时代&#xff0c;知识的积累与管理成为了个人发展的关键。面对海量的科研文献、工作资料和各类信息&#xff0c;如何高效地构建属于自己的知识体系&#xff0c;是许多人面临的挑战。ima.copilot这款AI工具的出现&#xff0c;为解决这一难题提供了新的思路。它凭借强…...

向量数据库技术系列五-Weaviate介绍

一、前言 Weaviate 是由德国公司 SeMI Technologies 开发的开源向量搜索引擎数据库。它结合了向量搜索和图数据库技术&#xff0c;旨在为 AI 应用提供高效的数据存储和检索能力。具有以下的特点&#xff1a; 高性能向量搜索 Weaviate 支持高效的向量索引和近似最近邻&#x…...

1.Qt SDK 的下载和安装

1Qt 下载官⽹&#xff1a; http://download.qt.io/archive/qt/ 2版本自行选择 3下载对应版本的.exe文件 4下载包下载完成 5双击.exe文件&#xff0c;默认下一步&#xff0c;要注册一个qt的账户 6记住程序安装的位置&#xff0c;后面要配置环境变量 7勾3个&#xff08;组件自行…...

光场中的核心概念:Macro Pixel与SAI的深度解析与实例应用

一、概念详解&#xff1a;从硬件到算法的核心要素 Macro Pixel&#xff08;宏像素&#xff09; Macro Pixel是光场相机的硬件核心单元&#xff0c;由微透镜阵列覆盖的一组传感器子像素构成。每个微透镜对应一个宏像素&#xff0c;其子像素分别记录通过该微透镜不同区域的光线方…...

机器学习(吴恩达)

一, 机器学习 机器学习定义: 计算机能够在没有明确的编程情况下学习 特征: 特征是描述样本的属性或变量&#xff0c;是模型用来学习和预测的基础。如: 房屋面积, 地理位置 标签: 监督学习中需要预测的目标变量&#xff0c;是模型的输出目标。如: 房屋价格 样本: 如: {面积100㎡…...

Ubuntu 20.04 + mysql 8 默认密码问题

问题描述&#xff1a; Ubuntu20.04安装完mysql8之后无法登录&#xff0c;不知道密码 mysql -u root 原因&#xff1a; 系统默认自动配置好了用户和强密码 解决办法&#xff1a; sudo cat /etc/mysql/debian.cnf查看该文件 利用上面的user 和 passwd 即可登录mysql mysql …...

私有云大数据部署:从开发到生产(Docker、K8s、HDFS/Flink on K8s)

1. 引言 在企业级大数据架构中,私有云部署成为了许多企业的首选,尤其是对数据安全性、合规性、资源控制要求较高的场景。相比于公有云,私有云具备更强的灵活性,能够根据业务需求进行定制化优化。本文将探讨如何在私有云环境下构建大数据平台,包括 Docker 容器化、Kuberne…...

使用DeepSeek和墨刀AI,写PRD文档、画原型图的思路、过程及方法

使用DeepSeek和墨刀AI&#xff0c;写PRD文档、画原型图的思路、过程及方法 现在PRD文档要如何写更高效、更清晰、更完整&#xff1f; 还是按以前的思路写PRD&#xff0c;就还是以前的样子。 现在AI这么强大&#xff0c;产品经理如何使用DeepSeek写PRD文档&#xff0c;产品经…...

拥有一台云服务器能做什么呢?

拥有一台云服务器就像拥有了一台24小时在线的远程电脑&#xff0c;你可以通过互联网随时随地管理它。它的用途非常广泛&#xff0c;无论是个人学习、开发测试&#xff0c;还是企业级应用部署&#xff0c;都能发挥重要作用。以下是常见的应用场景&#xff0c;按需求分类整理&…...

4大观点直面呈现|直播回顾-DeepSeek时代的AI算力管理

直播回顾 2025年2月21日晚上9点30分&#xff0c; 我们迎来了新春后的首场人工智能三人行宣讲活动。 这场直播聚焦于Deepseek开源大模型&#xff0c; 探讨了其对AI算力、算法、数据及应用带来的新发展。 本次直播邀请到了上海赞奇的总经理俞阁总和速石科技陈琳涛&#xff0c;…...

DBeaver安装步骤及连接数据库

一、DBeaver安装步骤 1、双击安装文件“dbeaver-ce-21.3.3-x86_64-setup.exe”&#xff0c;进入安装界面 2、点击ok》下一步》我接受&#xff0c;选择下图选项&#xff0c;为此所有用户使用 3、点击下一步&#xff0c;将重新弹出安装开始界面 4、点击ok》下一步》我接受&…...

玩转python:通俗易懂掌握高级数据结构-collections模块之UserDict

引言 UserDict是Python中collections模块提供的一个强大工具&#xff0c;它是dict的封装类&#xff0c;允许用户自定义字典的行为。通过继承UserDict&#xff0c;开发者可以轻松扩展字典的功能&#xff0c;实现自定义的字典逻辑。本文将详细介绍UserDict的关键用法和特性&…...

如何解决ChatGPTplus/pro o1/o3模型无法识别图片或者文件,限制次数?

你是否遇到ChatGPTplus无法识别图片、或者无法识别文件&#xff0c;甚至回答很简短&#xff0c;o1不思考&#xff0c;GPT-4o不能联网、分析图片和处理文件&#xff01;感觉非常敷衍。本文教你如何确定自己的账号是否被降智&#xff1b;教你如何降智的原因&#xff1b;教你解决降…...

96.HarmonyOS NEXT工具类设计模式教程:最佳实践与实现

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT工具类设计模式教程&#xff1a;最佳实践与实现 1. 工具类设计原则 1.1 基本原则 原则说明示例单一职责每个类只负责一个功能Win…...

springboot+vue如何前后端联调,手搓前后端分离项目

我们首先在前端安装axios&#xff0c;这个npm就可以&#xff01;下载完成后。我们用我们之前的页面&#xff0c;然后写一个card&#xff0c;在一个card里面渲染我们的用户数据&#xff0c;我们先写一个查询所有用户信息的一个效果&#xff01; <el-card class"box-card…...