Docker 速通(总结)
Docker 命令
镜像
docker build: 从 Dockerfile 构建镜像。docker pull: 从 Docker Hub 或其他注册表拉取镜像。docker push: 将镜像推送到 Docker Hub 或其他注册表。docker images: 列出本地镜像。docker rmi: 删除本地镜像。
容器
docker run: 创建并启动一个新的容器。docker start: 启动一个已停止的容器。docker stop: 停止一个正在运行的容器。docker ps: 列出正在运行的容器(-a参数列出所有容器)。docker exec: 在运行的容器中执行命令。docker rm: 删除一个或多个容器。docker logs: 查看容器的日志输出。
参数
-d: 后台运行容器。-p: 端口映射(例如:-p 8080:80)。-v: 挂载卷或目录(例如:-v /host/path:/container/path)。-e: 设置环境变量(例如:-e MY_VAR=value)。--name: 为容器指定名称。--network: 连接到自定义网络。
存储
目录挂载
-v /host/path:/container/path: 将主机上的目录挂载到容器中的指定路径。-v /host/file:/container/file: 将主机上的文件挂载到容器中的指定路径。
卷映射
-v my_volume:/container/path: 使用命名卷将数据持久化。docker volume create my_volume: 创建一个新的卷。docker volume ls: 列出所有卷。docker volume rm my_volume: 删除卷。
网络
自定义网络
docker network create my_network: 创建一个新的自定义网络。docker network ls: 列出所有网络。docker network inspect my_network: 查看网络的详细信息。docker network connect my_network my_container: 将容器连接到自定义网络。docker network disconnect my_network my_container: 将容器从自定义网络断开。
Compose
语法
version: 指定 Compose 文件格式的版本(例如:version: '3.8')。services: 定义服务(例如:db,web)。image: 指定基础镜像。build: 指定构建上下文和 Dockerfile。ports: 端口映射(例如:- "8080:80")。volumes: 挂载卷或目录(例如:- "/host/path:/container/path")。environment: 设置环境变量(例如:- "MY_VAR=value")。depends_on: 依赖关系(例如:- db)。networks: 连接到自定义网络。restart: 重启策略(例如:unless-stopped)。
命令
docker-compose up -d: 后台启动服务。docker-compose down: 停止并删除服务。docker-compose ps: 列出服务状态。docker-compose restart <service_name>: 重启服务。docker-compose build: 重新构建服务。docker-compose config: 检查配置文件的有效性。docker-compose logs <service_name>: 查看服务日志。
Dockerfile
指令
FROM: 指定基础镜像(例如:FROM python:3.9-slim)。WORKDIR: 设置工作目录(例如:WORKDIR /app)。RUN: 执行命令并创建新的镜像层(例如:RUN pip install -r requirements.txt)。COPY: 复制文件或目录(例如:COPY . /app)。ADD: 类似于COPY,但支持自动解压压缩文件(例如:ADD myapp.tar.gz /app)。ENV: 设置环境变量(例如:ENV MY_ENV_VAR=my_value)。EXPOSE: 声明容器运行时需要监听的端口(例如:EXPOSE 8000)。CMD: 指定容器启动时要运行的默认命令(例如:CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"])。ENTRYPOINT: 指定容器启动时要运行的命令(例如:ENTRYPOINT ["uwsgi", "--ini", "uwsgi.ini"])。VOLUME: 创建挂载点(例如:VOLUME /data)。
Docker 的分层存储机制
- 镜像层:Docker 镜像是由一系列只读层组成的。每一层都是前一层的增量修改。
- 写时复制 (Copy-on-Write, CoW):当容器运行时,Docker 会创建一个可写层来保存所有的更改。只读层保持不变,只有在写操作发生时才会创建新的层。
- 联合文件系统 (UnionFS):Docker 使用联合文件系统来管理这些层,使得多层文件系统可以合并成一个统一的视图。
- 缓存:Docker 构建过程中,如果某一层没有变化,Docker 会使用之前的缓存层,从而加快构建速度。
总结
- Docker 命令:用于管理镜像和容器的基本命令。
- 存储:通过目录挂载和卷映射实现数据持久化。
- 网络:自定义网络使容器间通信更灵活。
- Compose:简化多容器应用的管理和部署。
- Dockerfile:定义如何构建镜像的脚本。
- 分层存储机制:提高构建效率和资源利用率。
希望这些总结对你有所帮助!如果你有任何问题,请随时提问。
相关文章:
Docker 速通(总结)
Docker 命令 镜像 docker build: 从 Dockerfile 构建镜像。docker pull: 从 Docker Hub 或其他注册表拉取镜像。docker push: 将镜像推送到 Docker Hub 或其他注册表。docker images: 列出本地镜像。docker rmi: 删除本地镜像。 容器 docker run: 创建并启动一个新的容器。…...
人工智能之数学基础:矩阵的降维
本文重点 在现实世界中,我们经常会遇到高维数据。例如,图像数据通常具有很高的维度,每个像素点都可以看作是一个维度。高维数据不仅会带来计算和存储上的困难,还可能会导致 “维数灾难”,即随着维度的增加,数据的稀疏性和噪声也会增加,从而影响数据分析的效果。因此,我…...
Object 转 JSONObject 并排除null和““字符串
public static JSONObject objToJSONObject(Object obj) throws Exception{//创建一个 HashMap 对象 map,用于存储对象的属性名和属性值。//key 是属性名(String 类型),value 是属性值(Object 类型)Map<…...
mysql5.7主从部署(docker-compose版本)
mysql5.7主从部署(docker-compose版本) 1:docker-compose-test.yml 文件信息 version: 3services:# MySQL 数据库mysql-master:image: mysql:5.7container_name: mysql-masterenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: nacosports:- 23…...
Java+Html实现前后端客服聊天
文章目录 核心组件网络通信层事件调度层服务编排层 Spring实现客服聊天技术方案对比WebScoket建立连接用户上线实现指定用户私聊群聊离线 SpringBootWebSocketHtmljQuery实现客服聊天1. 目录结构2. 配置类3. 实体类、service、controller4. ChatWebSocketHandler消息处理5.前端…...
实用工具-Another Redis Desktop Manager介绍
GitHub:https://github.com/qishibo/AnotherRedisDesktopManager/releases Gitee:AnotherRedisDesktopManager 发行版 - Gitee.com Another Redis Desktop Manager 是一款免费的 Redis 可视化管理工具,具有以下特点和功能: 特…...
MySQL如何存储表情符号?
存储表情符号 默认mysql的字符集是utf8,排序规则为 utf8_general_ci INSERT INTO department (name) VALUES (😄)在存储表情的时候会报 1366 - Incorrect string value: \xF0\x9F\x98\x84 for column name at row 1, Time: 0.007000s 这时需要修改字符…...
解锁 DeepSeek 安全接入、稳定运行新路径
背景 目前,和 DeepSeek 相关的需求总结为两类: 因官方 APP/Web 服务经常无法返回结果,各类云厂商、硬件或软件企业提供满血版或蒸馏版的 API 算力服务,还有不少基于开源家用计算和存储设备的本地部署方案,以分担 De…...
Spring Boot 配置属性 (Configuration Properties) 详解:优雅地管理应用配置
引言 Spring Boot 的 配置属性 (Configuration Properties) 是其另一个核心特性,它提供了一种 类型安全、结构化 的方式来管理应用的配置信息。 与自动配置相辅相成,配置属性允许开发者 以声明式的方式将外部配置 (如 properties 文件、YAML 文件、环境…...
【LangChain入门 1】安装
文章目录 一、安装LangChain二、安装Ollama三、Ollama下载DeepSeekR1-7b模型 本学习系列以Ollama推理后端作为大语言模型,展开对LangChain框架的入门学习。 模型采用deepseek-r1:7b。 毕竟是免费开源的,下载过程耐心等待即可。 如果可以连接外网&#x…...
HTML中required与aria required区别
在HTML中,required和aria-required"true"都用于标识表单字段为必填项,但它们的作用和适用场景有所不同: 1. required 属性 • 功能属性:属于HTML5原生属性,直接控制表单验证逻辑。 • 作用: • …...
IvorySQL 增量备份与合并增量备份功能解析
1. 概述 IvorySQL v4 引入了块级增量备份和增量备份合并功能,旨在优化数据库备份与恢复流程。通过 pg_basebackup 工具支持增量备份,显著降低了存储需求和备份时间。同时,pg_combinebackup 工具能够将多个增量备份合并为单个完整备份&#x…...
【css酷炫效果】纯CSS实现故障文字特效
【css酷炫效果】纯CSS实现故障文字特效 缘创作背景html结构css样式完整代码基础版进阶版(3D效果) 效果图 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492053 缘 创作随缘,不定时更新。 创作背景 刚…...
SpringSecurity配置(自定义认证过滤器)
文末有本篇文章的项目源码文件可供下载学习 在这个案例中,我们已经实现了自定义登录URI的操作,登录成功之后,我们再次访问后端中的API的时候要在请求头中携带token,此时的token是jwt字符串,我们需要将该jwt字符串进行解析,查看解析后的User对象是否处于登录状态.登录状态下,将…...
设计模式(行为型)-备忘录模式
目录 定义 类图 角色 角色详解 (一)发起人角色(Originator) (二)备忘录角色(Memento) (三)备忘录管理员角色(Caretaker)…...
WebAssembly 技术在逆向爬虫中的应用研究
一、引言 1.1 Web 技术发展与性能需求 在当今数字化浪潮中,Web 应用已成为人们生活和工作中不可或缺的一部分。从简单的静态网页到功能复杂的单页面应用(SPA),Web 技术的发展日新月异。随着用户对 Web 应用交互性、实时性和复杂性的要求不断提高,传统的 Web 开发技术面临着…...
Advanced Intelligent Systems 软体机器手助力截肢者玩转鼠标
随着科技的不断进步,假肢技术在改善截肢者生活质量方面取得了显著成就。然而,截肢群体在就业方面仍面临巨大困难,适龄截肢群体的就业率仅为健全群体的一半。现有的肌电控制假肢手在与计算机交互时存在诸多挑战,特别是截肢者在使用…...
pyhton中 字典 元组 列表 集合之间的互相转换
在 Python 中,集合(set)、字典(dict)、元组(tuple)、列表(list)和序列(如字符串 str)之间可以互相转换。以下是它们之间转换的详细方法,涵盖从基础到高级的用法。 1. 列表(list)与其他类型的转换 1.1 列表 → 集合 my_list = [1, 2, 2, 3...
每日Attention学习27——Patch-based Graph Reasoning
模块出处 [NC 25] [link] Graph-based context learning network for infrared small target detection 模块名称 Patch-based Graph Reasoning (PGR) 模块结构 模块特点 使用图结构更好的捕捉特征的全局上下文将图结构与特征切片(Patching)相结合,从而促进全局/…...
理一理Mysql日期
在 MySQL 数据库中,关于日期和时间的类型主要有以下几种: 1. **DATE**: 仅存储日期部分,格式为 YYYY-MM-DD,例如 2023-10-31。 2. **TIME**: 仅存储时间部分,格式为 HH:MM:SS,例如 14:30:00。 3. **DATE…...
数据结构:栈的应用举例——括号匹配的检验
2. 括号匹配的检验 如果表达式中包含括号,当程序中含有这类表达式时,在代码编译过程中,必然会检查括号是否匹配,这是一项必需的语法检查环节。 (1)迭代版 此处假设表达式中只含有左、右圆括号࿰…...
DeepSeek成功的秘诀:谈谈DeepSeek的算法创新
李升伟 整理 DeepSeek 是一家专注于人工智能技术研发的公司,其算法创新在业界引起了广泛关注。以下是 DeepSeek 使用的核心算法及其特点的详细解析: 1. 原生稀疏注意力(NSA)算法 DeepSeek 提出的 原生稀疏注意力(Na…...
初始OpenCV
OpenCV 是一个功能强大、应用广泛的计算机视觉库,它为开发人员提供了丰富的工具和算法,可以帮助他们快速构建各种视觉应用。随着计算机视觉技术的不断发展,OpenCV 也将会继续发挥重要的作用。 OpenCV 提供了大量的计算机视觉算法和图像处理工具,广泛应用于图像和视频的处理…...
深圳南柯电子|医疗设备EMC检测测试整改:保障患者安全的第一步
在医疗设备领域,电磁兼容性(EMC)是确保设备安全、有效运行的关键指标。随着医疗技术的飞速发展,医疗设备日益复杂,其电磁环境也愈发复杂多变。EMC检测测试及整改因此成为医疗设备研发、生产、销售过程中不可或缺的一环…...
【笔记】计算机网络——数据链路层
概述 链路是从一个结点到相邻结点的物理路线,数据链路则是在链路的基础上增加了一些必要的硬件和软件实现 数据链路层位于物理层和网络层之间,它的核心任务是在直接相连的节点(如相邻的交换机,路由器)之间提供可靠且…...
Rust语言介绍和猜数字游戏的实现
文章目录 Rust语言介绍和猜数字游戏的实现cargo是什么使用Rust编写猜数字 Rust语言介绍和猜数字游戏的实现 Rust语言是一种系统编程语言,核心强调安全性、并发性以及高性能,由类似于C/C的底层控制能力,性能也非常接近,Rust有一些…...
STM32-汇编
学习arm汇编的主要目的是为了编写arm启动代码,启动代码启动以后,引导程序到c语言环境下运行。换句话说启动代码的目的是为了在处理器复位以后搭建c语言最基本的需求。因此启动代码的主要任务有: 初始化异常向量表; 初始化各工作模…...
利用通义灵码AI在VS Code中快速开发扫雷游戏:Qwen2.5-Max模型的应用实例
引言 随着人工智能技术的不断进步,开发过程中的自动化程度也在逐步提高。阿里云推出的通义灵码AI程序员,作为一款创新型的智能编程助手,现已全面上线并兼容VS Code、JetBrains IDEs等多种开发环境。本文将介绍如何利用最新的Qwen2.5-Max模型…...
202503执行jmeter压测数据库(ScyllaDB,redis,lindorm,Mysql)
一、Mysql 1 、 准备MySQL 连接内容 2 、 下载连接jar包 准备 mysql-connector-java-5.1.49.jar 放到 D:\apache-jmeter-5.6.3\lib\ext 目录下面; 3 、 启动jmeter ,配置脚本 添加线程组---》JDBC Connection Configuration---》JDBC Request---》查看结果树。 1)测…...
【QT 多线程示例】两种多线程实现方式
文章目录 多线程实现方式一:继承QThread类方式二: 使用QObject::moveToThread()方法 多线程实现 在Qt中,实现多线程编程有两种常见的方式,它们分别是通过继承QThread类和使用QObject::moveToThread()方法。 方式一:继…...
