【Docker】 常用命令
文章目录
- 介绍Docker和容器化技术
- 什么是Docker?
- Docker的优势和应用场景
- Docker的应用场景包括但不限于:
- 安装和配置Docker
- 安装Docker引擎
- 配置Docker环境
- Docker镜像命令
- 搜索镜像
- 拉取镜像
- 查看本地镜像
- 删除本地镜像
- Docker容器命令
- 创建容器
- 启动容器
- 停止容器
- 查看容器状态
- 进入容器
- 删除容器
- Docker网络命令
- 创建网络
- 查看网络
- 连接容器到网络
- 断开容器与网络的连接
- Docker数据卷命令
- 创建数据卷
- 查看数据卷
- 挂载数据卷到容器
- 备份和恢复数据卷
- Docker Compose命令
- 编写Docker Compose文件
- 启动和停止应用
- 查看应用状态
- Docker Swarm命令
- 初始化Swarm模式
- 添加节点
- 部署服务
- 扩展和缩减服务
- Docker Registry命令
- 搭建私有仓库
- 推送镜像到私有仓库
- 从私有仓库拉取镜像
- 实际应用示例
- 使用Docker部署Web应用
- 使用Docker构建多容器应用
- Jenkins服务器中部署docker的简单调用
介绍Docker和容器化技术
什么是Docker?
Docker是一种开源的容器化平台,可以让开发者打包应用程序及其所有依赖关系(如库、环境变量、配置文件等)到一个称为容器的独立运行环境中。容器是一种轻量级、可移植的软件单元,它们可以在任何支持Docker的环境中运行,而不受底层系统的影响。
Docker的优势和应用场景
-
轻量级和快速部署: Docker容器相比于传统虚拟机更轻量级,启动速度更快,使得应用程序的部署和扩展变得更加高效。
-
环境一致性: Docker容器可以确保在不同环境中应用程序的行为一致,避免了“在我的机器上可以运行”的问题。
-
资源利用率高: 多个Docker容器可以共享主机的操作系统内核,节省了资源,提高了系统利用率。
-
易于管理: Docker提供了丰富的命令行工具和API,使得容器的管理、监控、日志查看等操作变得简单。
-
应用隔离: 每个Docker容器都是相互隔离的,一个容器的问题不会影响其他容器,提高了应用程序的安全性。
Docker的应用场景包括但不限于:
-
微服务架构: Docker容器适合部署和管理微服务,每个微服务可以打包成一个独立的容器,便于扩展和维护。
-
持续集成和持续部署(CI/CD): Docker容器可以在不同环境中快速部署,适合用于构建持续集成和持续部署的流程。
-
开发环境隔离: 开发人员可以使用Docker容器来创建隔离的开发环境,避免开发环境与生产环境不一致导致的问题。
-
跨平台开发: Docker容器可以在不同操作系统和云平台上运行,使得应用程序在各种环境中具有高度的可移植性。
通过使用Docker,开发者可以更加便捷地构建、交付和运行应用程序,提高了开发效率和部署灵活性,成为现代软件开发中不可或缺的一环。
安装和配置Docker
安装Docker引擎
安装Docker引擎是使用Docker的第一步。以下是安装Docker引擎的常见步骤:
-
Ubuntu系统下安装Docker:
-
更新apt软件包索引:
sudo apt-get update -
安装必要的软件包以允许apt通过HTTPS使用存储库:
sudo apt-get install apt-transport-https ca-certificates curl 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" -
更新apt软件包索引:
sudo apt-get update -
安装最新版本的Docker:
sudo apt-get install docker-ce -
验证Docker是否安装成功:
sudo docker --version
-
-
macOS系统下安装Docker:
- 下载Docker Desktop for Mac并安装:https://www.docker.com/products/docker-desktop
-
Windows系统下安装Docker:
- 下载Docker Desktop for Windows并安装:https://www.docker.com/products/docker-desktop
配置Docker环境
安装完Docker后,通常不需要太多额外的配置。但是,你可以根据需要进行一些常见的配置,如:
-
配置Docker镜像加速器: 在国内使用Docker时,可以配置镜像加速器以加速镜像的拉取和推送。常用的镜像加速器有阿里云加速器、网易云加速器等。
-
配置Docker容器网络: 可以创建自定义网络以连接Docker容器,或者使用默认的桥接网络。
-
配置Docker存储: 可以配置Docker容器的存储驱动,如使用本地存储、网络存储或云存储等。
-
安全配置: 可以配置Docker的安全参数,如限制容器的资源使用、设置用户访问权限等。
配置Docker环境可以根据实际需求进行调整,确保Docker在你的开发和部署流程中能够更好地发挥作用。
Docker镜像命令
搜索镜像
要在Docker Hub上搜索镜像,可以使用以下命令:
docker search <镜像名称>
例如,要搜索名为ubuntu的镜像,可以运行:
docker search ubuntu
拉取镜像
要拉取一个镜像到本地,可以使用以下命令:
docker pull <镜像名称>:<标签>
例如,要拉取Ubuntu 20.04的镜像,可以运行:
docker pull ubuntu:20.04
查看本地镜像
要查看本地已经拉取的镜像列表,可以使用以下命令:
docker images
这将列出本地所有的镜像,包括镜像名称、标签、镜像ID、创建时间等信息。
删除本地镜像
要删除本地的一个或多个镜像,可以使用以下命令:
docker rmi <镜像ID或镜像名称>
如果要删除多个镜像,可以在命令中指定多个镜像ID或名称。
例如,要删除名为ubuntu:20.04的镜像,可以运行:
docker rmi ubuntu:20.04
请注意,删除镜像时要谨慎,确保不再需要这些镜像,因为删除后将无法恢复。
Docker容器命令
创建容器
要创建一个容器,可以使用以下命令:
docker create <镜像名称> <命令>
例如,要创建一个基于Ubuntu 20.04镜像的容器,可以运行:
docker create ubuntu:20.04
启动容器
要启动一个已经创建的容器,可以使用以下命令:
docker start <容器ID或容器名称>
例如,要启动名为my_container的容器,可以运行:
docker start my_container
停止容器
要停止一个正在运行的容器,可以使用以下命令:
docker stop <容器ID或容器名称>
例如,要停止名为my_container的容器,可以运行:
docker stop my_container
查看容器状态
要查看容器的状态,可以使用以下命令:
docker ps
这将列出正在运行的容器的信息,包括容器ID、镜像名称、状态、创建时间等。
如果要查看所有包括已停止的容器,可以使用-a选项:
docker ps -a
进入容器
要进入一个正在运行的容器,可以使用以下命令:
docker exec -it <容器ID或容器名称> <命令>
例如,要进入名为my_container的容器并打开一个交互式终端,可以运行:
docker exec -it my_container bash
这将在容器内部打开一个bash终端,可以在其中执行命令。
删除容器
要删除一个容器,可以使用以下命令:
docker rm <容器ID或容器名称>
例如,要删除名为my_container的容器,可以运行:
docker rm my_container
请注意,删除容器时要谨慎,确保不再需要这些容器,因为删除后将无法恢复。
Docker网络命令
创建网络
要创建一个自定义网络,可以使用以下命令:
docker network create <网络名称>
例如,要创建一个名为my_network的网络,可以运行:
docker network create my_network
查看网络
要查看Docker中存在的网络列表,可以使用以下命令:
docker network ls
这将列出所有的Docker网络,包括网络ID、名称、驱动程序等信息。
连接容器到网络
要将一个容器连接到指定的网络,可以使用以下命令:
docker network connect <网络名称> <容器ID或容器名称>
例如,要将容器my_container连接到my_network网络,可以运行:
docker network connect my_network my_container
断开容器与网络的连接
要将一个容器与指定网络断开连接,可以使用以下命令:
docker network disconnect <网络名称> <容器ID或容器名称>
例如,要将容器my_container与my_network网络断开连接,可以运行:
docker network disconnect my_network my_container
请注意,网络命令可以帮助您管理Docker中的网络配置,确保容器能够按照需要进行通信和连接。
Docker数据卷命令
创建数据卷
要创建一个数据卷,可以使用以下命令:
docker volume create <数据卷名称>
例如,要创建名为my_volume的数据卷,可以运行:
docker volume create my_volume
查看数据卷
要查看所有的数据卷,可以使用以下命令:
docker volume ls
这将列出所有的数据卷,包括数据卷的名称和驱动程序。
挂载数据卷到容器
要将一个数据卷挂载到容器中,可以使用以下命令:
docker run -v <数据卷名称>:<容器路径> <镜像名称>
例如,要将名为my_volume的数据卷挂载到容器的/data路径,可以运行:
docker run -v my_volume:/data ubuntu:20.04
这将创建一个基于Ubuntu 20.04镜像的容器,并将my_volume数据卷挂载到容器的/data路径。
备份和恢复数据卷
要备份数据卷,可以使用以下命令将数据卷导出为一个.tar文件:
docker run --rm -v <数据卷名称>:/data -v <目标路径>:/backup ubuntu:20.04 tar cvf /backup/<备份文件名>.tar /data
例如,要备份名为my_volume的数据卷到/backup目录下的my_volume_backup.tar文件中,可以运行:
docker run --rm -v my_volume:/data -v /backup:/backup ubuntu:20.04 tar cvf /backup/my_volume_backup.tar /data
要恢复数据卷,可以使用以下命令将.tar文件导入到一个新的数据卷中:
docker run --rm -v <目标路径>:/data -v <备份文件路径>:/backup ubuntu:20.04 tar xvf /backup/<备份文件名>.tar -C /data
例如,要将/backup目录下的my_volume_backup.tar文件恢复为一个名为my_volume_restore的数据卷,可以运行:
docker run --rm -v my_volume_restore:/data -v /backup:/backup ubuntu:20.04 tar xvf /backup/my_volume_backup.tar -C /data
这将创建一个名为my_volume_restore的数据卷,并将备份文件中的内容恢复到该数据卷中。
Docker Compose命令
编写Docker Compose文件
Docker Compose使用YAML文件来定义和配置多个容器应用。以下是一个简单的Docker Compose文件示例:
version: '3'
services:web:image: nginx:latestports:- 80:80volumes:- ./html:/usr/share/nginx/html
在这个示例中,我们定义了一个名为web的服务,使用了nginx:latest镜像,并将主机的80端口映射到容器的80端口。还使用了一个数据卷将主机上的./html目录挂载到容器的/usr/share/nginx/html路径。
启动和停止应用
要启动使用Docker Compose定义的应用程序,可以使用以下命令:
docker-compose up
这将根据Docker Compose文件启动所有定义的服务。
要停止应用程序,可以使用以下命令:
docker-compose down
这将停止并移除所有相关的容器、网络和数据卷。
查看应用状态
要查看Docker Compose应用程序的状态,可以使用以下命令:
docker-compose ps
这将显示所有定义的服务的状态,包括容器ID、状态、端口映射等信息。
可以使用其他Docker命令,如docker ps和docker logs,来查看单个服务的状态和日志。
Docker Swarm命令
Docker Swarm是Docker的内置原生集群和编排工具。它允许您将多个Docker主机组成一个集群,以便轻松地部署和管理分布式应用程序。
初始化Swarm模式
要初始化一个Docker Swarm集群,可以使用以下命令:
docker swarm init
这将将当前主机设置为Swarm管理节点,并生成一个加入令牌,用于其他节点加入集群。
添加节点
要将其他节点加入到Swarm集群中,可以使用以下命令:
docker swarm join --token <加入令牌> <管理节点IP>:<端口>
其中,<加入令牌>是在初始化Swarm模式时生成的加入令牌,<管理节点IP>是Swarm管理节点的IP地址,<端口>是Swarm管理节点的监听端口。
部署服务
要在Swarm集群中部署服务,可以使用以下命令:
docker service create --name <服务名称> --replicas <副本数> <镜像名称>
其中,<服务名称>是要部署的服务的名称,<副本数>是要运行的服务副本数,<镜像名称>是要使用的镜像名称。
例如,要部署一个名为my_service的服务,使用nginx:latest镜像,并运行3个副本,可以运行:
docker service create --name my_service --replicas 3 nginx:latest
扩展和缩减服务
要扩展或缩减Swarm集群中的服务副本数,可以使用以下命令:
docker service scale <服务名称>=<副本数>
例如,要将名为my_service的服务的副本数扩展到5个,可以运行:
docker service scale my_service=5
这将增加my_service服务的副本数到5个。
要缩减副本数,只需将<副本数>设置为较小的值即可。
请注意,Swarm会自动处理服务的副本分布和容器的调度,以确保服务的高可用性和负载均衡。
Docker Registry命令
Docker Registry是Docker官方提供的镜像仓库服务,您可以使用它来存储和管理Docker镜像。您可以搭建私有的Docker Registry来存储自己的镜像。
搭建私有仓库
要搭建私有的Docker Registry,可以使用以下命令:
docker run -d -p 5000:5000 --restart=always --name registry registry:2
这将在本地启动一个私有的Docker Registry服务,并映射到主机的5000端口。
推送镜像到私有仓库
要将一个镜像推送到私有仓库,首先需要给镜像打上私有仓库地址的标签,然后推送到私有仓库。以下是推送镜像到私有仓库的命令:
docker tag image_name localhost:5000/image_name
docker push localhost:5000/image_name
这将把名为image_name的镜像推送到搭建的私有仓库中。
从私有仓库拉取镜像
要从私有仓库拉取镜像,可以使用以下命令:
docker pull localhost:5000/image_name
这将从私有仓库中拉取名为image_name的镜像到本地。
实际应用示例
使用Docker部署Web应用
以下是使用Docker部署Web应用的示例步骤:
-
编写Dockerfile:创建一个名为Dockerfile的文件,其中定义了如何构建Web应用的Docker镜像。例如,可以基于一个现有的Web服务器镜像,如Nginx或Apache,将应用程序代码复制到镜像中,并设置适当的配置。
-
构建Docker镜像:在终端中导航到包含Dockerfile的目录,并运行以下命令来构建镜像:
docker build -t my_web_app .这将根据Dockerfile构建一个名为
my_web_app的镜像。 -
运行Docker容器:使用以下命令将镜像作为容器运行起来:
docker run -d -p 80:80 my_web_app这将在端口80上将容器的80端口映射到主机上,使Web应用可通过主机的IP地址访问。
现在,您的Web应用已经在Docker容器中运行,并且可以通过主机的IP地址访问。
使用Docker构建多容器应用
对于复杂的应用程序,可能需要多个容器来支持不同的组件。以下是使用Docker构建多容器应用的示例步骤:
-
编写Docker Compose文件:创建一个名为docker-compose.yml的文件,其中定义了应用程序的各个服务和它们之间的依赖关系。在该文件中,可以指定每个服务使用的镜像、容器之间的网络连接等。
-
编写Dockerfile:为每个服务编写Dockerfile,定义如何构建每个服务的镜像。可以使用不同的基础镜像和安装所需的软件包、配置等。
-
构建和启动应用程序:在终端中导航到包含docker-compose.yml文件的目录,并运行以下命令来构建和启动应用程序:
docker-compose up -d这将根据docker-compose.yml文件中的配置构建和启动应用程序的所有服务。
现在,您的多容器应用程序已经在Docker中构建和运行起来了。Docker Compose会自动处理服务之间的网络连接和依赖关系,使应用程序的部署变得简单和可靠。
请注意,这只是一个简单的示例,实际的多容器应用程序可能涉及更多的服务和复杂的配置。
Jenkins服务器中部署docker的简单调用
-
运行命令
docker run -d -it --name rocketmq-dashboard --restart=always -d -p 6765:8080 xxx.com/cea/rocketmq-dashboard:1.0.0docker run: 运行一个新的容器。-d: 后台运行容器。-it: 分配一个伪终端并保持标准输入打开。--name rocketmq-dashboard: 为容器指定一个名称为rocketmq-dashboard。--restart=always: 设置容器总是在Docker守护进程启动时重新启动。-p 6765:8080: 将主机的端口6765映射到容器的端口8080。xxx.com/cea/rocketmq-dashboard:1.0.0: 要运行的镜像名称及其标签。
-
查看进程名称
docker psdocker ps: 查看正在运行的容器列表。
-
进入运行目录
进入运行目录 xxxx 可以是ps查出来的名称 也可以是iddocker exec -it xxxxx /bin/bashdocker exec: 在运行的容器中执行命令。-it: 分配一个伪终端并保持标准输入打开。xxxxx: 容器的名称或ID。/bin/bash: 要在容器中执行的命令,这里是启动一个bash shell。
相关文章:
【Docker】 常用命令
文章目录 介绍Docker和容器化技术什么是Docker?Docker的优势和应用场景Docker的应用场景包括但不限于: 安装和配置Docker安装Docker引擎配置Docker环境 Docker镜像命令搜索镜像拉取镜像查看本地镜像删除本地镜像 Docker容器命令创建容器启动容器停止容器…...
docker compose - 设置名字
只使用 docker compose up 启动容器,默认名字为当前文件夹的名字 设置 project-name,docker 客户端会显示设置的名字,方便区分 docker compose --project-name webtest up错误: docker compose up --project-name webtest 效果…...
工业拍卖平台、信息发布、租赁商城平台系统适用于全行业解决方案。
工业拍卖平台系统是为工业领域的资产交易、设备处置等提供线上拍卖服务的数字化平台。 主要功能: 拍卖信息发布:平台会展示待拍卖的工业资产详细信息,包括设备的名称、型号、规格、使用年限、生产厂家等基本信息,以及资产的图片…...
一个win32 / WTL下多线程库(CThread类)的使用心得
说是多线程库,其实就是一个单独的.h文件,可以方便的放入WTL/win32工程中。 下载地址:CThread. 里面也简单介绍了 用法。 具体用法,首先自定义一个子线程类继承CThreadImpl<T>,注意他是个模板类。 class CMySu…...
使用wordpress搭建简易的信息查询系统
背景 当前有这样的一个需求,要实现让客户能够自助登录系统查询一些个人的信息,市面上没有特别符合我的需求的产品,经过一段时间的研究,想出了一个用wordpress实现简易信息查询系统,有两种方式。 方式一:使…...
PAT甲级 1076 Forwards on Weibo(30)
文章目录 题目题目翻译深度优先搜索(dfs)宽度优先搜索(bfs)总结 原题链接 题目 题目翻译 微博被称为中国的推特。在微博上,一个用户可能有很多粉丝,也可能关注许多其他用户。因此,通过粉丝关系…...
揭开 gRPC、RPC 、TCP和UDP 的通信奥秘
差异点 特性TCPUDPRPCgRPCHTTP工作层级传输层传输层应用层应用层应用层传输协议面向连接的传输协议无连接传输协议使用 TCP、HTTP 等协议HTTP/2HTTP/1.1, HTTP/2序列化格式字节流数据报文XML、JSON 或自定义Protocol BuffersJSON 或 XML特点可靠的连接传输无连接、快速传输远程…...
使用Web Worker来处理多线程操作,以及如何避免主线程卡顿。
在JavaScript中处理大量数据时,由于JavaScript是单线程的,所有的操作都在主线程上运行,因此处理大量数据可能导致页面卡顿和响应迟缓。为了避免这些问题,可以使用Web Workers来实现多线程操作,允许在后台线程中处理复杂…...
杂谈:业务说的场景金融是什么?
引言:市场格局的转变 在供应短缺的年代,是典型的卖方市场。为了保证稳定供货,买方会提前一段时间下单,也几乎没什么议价能力。卖方只需等着接单就行。 现在很多领域的供应商数量越来越多,而且随着互联网的普及&#…...
在vscode实现用和Chrome开发者工具中相同的快捷键进行面板切换
在Chrome开发者工具中,我们可以用 Ctrl [ 和 Ctrl ] 快捷键来切换面板,用起来很方便。 vscode中默认没有这两个快捷键,我们可以通过配置自定义快捷键来实现相同的功能。 配置方法: 1. 按 Ctrl K, Ctrl S 调出快捷键配置面板。…...
【ESP32+MicroPython】硬件控制基础
ESP32是一款功能强大的微控制器,具有多种硬件接口。本文以“ESP32硬件控制”为主题,逐步介绍GPIO(通用输入输出)、PWM(脉宽调制)、ADC(模数转换)等功能的原理与实现,并结…...
Python学习从0到1 day26 第三阶段 Spark ① 数据输入
要学会 剥落旧痂 然后 循此新生 —— 24.11.8 一、Spark是什么 定义: Apache Spark 是用于大规模数据处理的统一分析引擎 简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据…...
kafka消费者的消费分区策略有哪些,默认是哪个?
Kafka消费者的分区分配策略主要有以下几种,分别决定了如何将多个分区分配给消费者: 1. Range(范围分配) 描述:将分区连续地分配给消费者。每个消费者负责一段连续的分区。如果有多个消费者,那么消费者会按…...
前端常用时间操作汇总
(1)获取中国标准时间: let now new Date(); // Thu Nov 14 2024 17:13:49 GMT0800 (中国标准时间) (2)获取年份: let year now.getFullYear(); // 2024 (3)获取月份&…...
106. UE5 GAS RPG 使用MVVM
MVVM 是 Model-View-ViewModel的缩写,个人理解它和MVC很相似,有区别的地方在于,在MVC里,Controller会服务多个View,而MVVM里,每个View都拥有一个单独的ViewModel,所以ViewModel相当于精简版的Co…...
Elasticsearch中什么是倒排索引?
倒排索引(Inverted Index)是一种索引数据结构,它在信息检索系统中被广泛使用,特别是在全文搜索引擎中。倒排索引允许系统快速检索包含给定单词的文档列表。它是文档内容(如文本)与其存储位置之间的映射&…...
深度学习:AT Decoder 详解
AT Decoder 详解 在序列到序列的模型架构中,自回归解码器(Autoregressive Translator, AT Decoder)是一种核心组件,其设计目标是确保生成的序列在语义和语法上的连贯性与准确性。自回归解码器通过逐步、依赖前一输出来生成新的输…...
pythons工具——图像的随机增强变换(只是变换了图像,可用于分类训练数据的增强)
从文件夹中随机选择一定数量的图像,然后对每个选定的图像进行一次随机的数据增强变换。 import os import random import cv2 import numpy as np from PIL import Image, ImageEnhance, ImageOps# 定义各种数据增强方法 def random_rotate(image, angle_range(-30…...
C++中volatile限定符详解
volatile是 C 和 C 中的一个类型限定符,它用于告诉编译器被修饰的变量具有特殊的属性,编译器在对该变量进行优化时需要特殊对待。以下是volatile限定符的主要作用: 1. 防止优化 内存访问顺序:在多线程环境或者与硬件交互的程序中…...
如何关闭Python解释器
方法1:采用sys.exit(0)正常终止程序,从图中可以看到,程序终止后shell运行不受影响。 方法2:采用os._exit(0)关闭整个shell,从图中看到,调用sys._exit(0)后整个shell都重启了(RESTART Shell&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
