Docker使用心得
Docker使用心得
最近使用Docker比较频繁,特此想记录一下,方便后续查找。
- Docker常用命令
- Docker如何配置使用GPU环境?
- 如何使用Dockerfile构建镜像?
- 如何使用docker compose 实例化容器?
Docker如何配置使用GPU环境
参考以下博客:
https://blog.csdn.net/walkskyer/article/details/136224041
Docker常用命令
docker ps -a # 查看docker所有进程
docker logs [容器ID/容器名] # 查看容器日志
docker inspect [容器ID/容器名] # 查看容器配置
docker start/stop/restart [容器ID/容器名] # 启动/停止/重启容器
docker images # 查看所有镜像
docker rm [容器ID/容器名] # 删除某个容器
docker stats [容器ID/容器名] # 查看容器资源占用状况
# 实例化容器
# -itd: 交互式后台运行
# --gpus all: 开启所有GPU访问
# --restart=always: 随docker启动时启动
# --network=bridge 设置网络为桥接模式
# -p: 配置端口映射, 宿主机端口:容器内端口,多个映射可传多个-p参数
# --name: 配置容器名
# -e: 环境设定,
# TZ="Asia/Tokyo" 设置时区为东京
# -v:配置容器和宿主机路径映射关系, 宿主机路径:容器内路径, 多个映射可传多个-v参数
docker run -i -t -d --gpus all --restart=always --network=bridge -p 80:5306 --name [容器名] -e TZ="Asia/Tokyo" -v ./app:/app -v ./docker/start.sh:/app/start.sh [镜像名]:[版本号] [启动时执行的脚本或命令]
# 进入容器内部
docker exec -it --user=root [容器ID/容器名] /bin/bash
如何使用Dockerfile构建镜像
1、编写dockerfile文件
参考以下示例:
# 指定基础镜像,需要结合实际情况选定
FROM nvidia/cuda:11.7.1-devel-ubuntu20.04# 安装额外的环境依赖
RUN chsh -s /bin/bash
SHELL ["/bin/bash", "-c"]
RUN apt-get update && \apt-get install -y curl && \apt-get install -y g++-9 && \apt install -y git
RUN apt-get install -y libgl1-mesa-glx
RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y libglib2.0-0
RUN export CC=gcc-9
RUN export CXX=g++-9
# 安装conda3
RUN curl "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh" -o /anaconda.sh && \/bin/bash /anaconda.sh -b -p /opt/conda && \rm /anaconda.sh && \ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc
ENV PATH /opt/conda/bin:/opt/conda/condabin:$PATH
# 将文件临时映射到镜像内
ADD ./environment.yaml /tmp/data/# 创建虚拟环境
RUN conda env create -f /tmp/data/environment.yaml
RUN echo "conda activate igpt_bfs" >> ~/.bashrc
ENV PATH /opt/conda/envs/igpt_bfs/bin:$PATH# 安装python相关依赖
ADD . /tmp/data/
RUN source activate igpt_bfs && pip install pybind11 && conda env list
RUN pip install -r /tmp/data/igpt-pip.txt# 离线安装所需三方软件包
RUN cd /tmp/data/hnswlib/ && python setup.py install
RUN cd /tmp/data/detectron2/ && python setup.py install
RUN apt-get install -y build-essential git libde265-dev libdjvulibre-dev libfftw3-dev libghc-bzlib-dev libgoogle-perftools-dev libgraphviz-dev libgs-dev libheif-dev libjbig-dev libjemalloc-dev libjpeg-dev liblcms2-dev liblqr-1-0-dev liblzma-dev libopenexr-dev libopenjp2-7-dev libpango1.0-dev libraqm-dev libraw-dev librsvg2-dev libtiff-dev libwebp-dev libwmf-dev libxml2-dev libzip-dev libzstd-dev
RUN cd /tmp/data/ImageMagick-7.1.1-11 && ./configure && make && make install && ldconfig /usr/local/lib
RUN pip uninstall -y xformers && pip install xformers==0.0.16rc425
2、构建镜像
docker build -t [镜像名:版本] [dockerfile文件所在的路径]
参考:
docker build -t advsiement-generation:v1 . # . 代表当前路径
如何使用docker compose 实例化容器
1、编写compose.yaml文件
参考以下配置:
services:advertisement-generation:container_name: kozuchi-advertisement-generation # 指定实例化的容器名image: advertisement-generation:v1 # 指定镜像名和版本号restart: always # 配置容器随docker启动ports: # 配置容器端口映射- 80:5306environment:- TZ=Asia/Tokyo # 指定时区- NVIDIA_VISIBLE_DEVICES=all # 配置gpuvolumes: # 配置容器路径映射- ../InternGPT:/app # 注意使用相对路径- ../docker/start.sh:/app/start.shcommand: /app/start.sh # 容器启动时执行命令或脚本deploy:resources:reservations:devices: # 配置gpu- driver: nvidiacapabilities: [gpu]
2、实例化容器
-d:守护进程运行,测试时可省略方便查看日志
docker compose up [-d] # 有些时候需要使用 docker-compose
相关文章:
Docker使用心得
Docker使用心得 最近使用Docker比较频繁,特此想记录一下,方便后续查找。 Docker常用命令Docker如何配置使用GPU环境?如何使用Dockerfile构建镜像?如何使用docker compose 实例化容器? Docker如何配置使用GPU环境 参…...

QListWidget 插入 item,item显示自定义界面
代码示意: class ItemWidget_action_cfg_w(QWidget):... # 如下方法是在指定item下插入新的item def __do_add_item(self, item):# 获取当前item rowrow self.__list_w.indexFromItem(item).row()# 注意这里没有父类,解释见后面说明new_item QList…...
Python写一个ERP系统和agent智能体协同仓库和订单的案例
这是一个关于使用Python编写一个简单的ERP系统,并与Agent智能体协同完成仓库和订单管理的案例。在这个案例中,我们将使用Python的第三方库sqlite3进行数据库操作,以及discord库实现与Agent智能体的通信。 1. 首先,安装所需库&…...

【计算机网络】已解决:“‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”报错
文章目录 一、问题分析背景二、可能出错的原因三、错误代码示例四、正确解决方法与示例五、注意事项 已解决“‘ping’ 不是内部或外部命令,也不是可运行的程序或批处理文件”报错 一、问题分析背景 在Windows操作系统中,ping 命令是一个常用的网络诊断…...
Web前端学堂:深入探索前端开发的核心领域
Web前端学堂:深入探索前端开发的核心领域 在数字化时代的浪潮中,Web前端开发扮演着至关重要的角色。它不仅是连接用户与互联网世界的桥梁,更是创造丰富、互动网络体验的关键所在。本文将带领读者走进Web前端学堂,从四个方面、五个…...
Java数据结构与算法(0/1背包问题)
前言: 背包问题(Knapsack Problem)是组合优化问题中的一个经典问题,有多个变种。这里我们讨论的是 0/1 背包问题,这是最基本的一种形式。问题的描述如下: 给定 n 件物品,每件物品有一个重量 wi 和一个价值…...

LLVM 中 的 pass 及其管理机制
概述 LLVM 编译器框架的核心概念是任务调用和执行 编译器开发者将IR分解为不同的处理对象,并将其处理过程实现为单独的pass类型。在编译器初始化,pass被实例化,并被添加到pass管理中 pass 管理器(pass manager) 以流水线的方式将各个独立的…...
第 5 章 监控系统 | 入门案例 - 虚拟机监控
👉 本文目标:为 Linux 虚拟机/服务器安装 node_exporter,实现对虚拟机/服务器的监控。 👀 本文内容: 安装 Node Exporter,暴露 Linux 指标(比如 CPU、磁盘、IO 等)配置 Prometheus 抓取 Node Exporter 暴露的指标数据配置 Recording Rule,便于缓存/加速 Dashboard 频…...

教资认定报名照片要求小于190kb…
教资认定报名照片要求小于190kb…… 要求:文件小于190kb,宽度290-300,高度408-418 方法:vx搜随时照-教资认定 直接制作合规尺寸即可,还可以打印纸质版邮寄到家...

显示类控件——Calendar Widget
🐌博主主页:🐌倔强的大蜗牛🐌 📚专栏分类:QT ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、Calendar Widget介绍核心属性重要信号代码示例: 获取选中的日期 一、Calendar Widget 介绍 …...

system与excel族函数区别
1.system #include<stdlib.h> int system(const char *command); comand是命令的路径,一般我们用绝对路径 system函数会创建新的进程,新的进程执行完返回原来的进程,原来的进程则继续执行后面的代码段。 如我们创建一个sys.cpp文件…...

STM32存储左右互搏 模拟U盘桥接SPI总线FATS读写FLASH W25QXX
STM32存储左右互搏 模拟U盘桥接SPI总线FATS读写FLASH W25QXX STM32的USB接口可以模拟成为U盘,通过FATS文件系统对连接的存储单元进行U盘方式的读写。 这里介绍STM32CUBEIDE开发平台HAL库模拟U盘桥接SPI总线FATS读写W25Q各型号FLASH的例程。 FLASH是常用的一种非易失…...

jrt从量变到质变
又是一个加班的周末,上周把台式机代码和数据库环境弄好了,这周进行大数据测试,直接把标本、标本医嘱、报告、报告结果、药敏结果等数据插入到1亿的规模,跑了一天一夜插入了5000多万个标本,后面接着补剩下的到一亿。 演…...
NLP主流大模型如GPT3/chatGPT/T5/PaLM/LLaMA/GLM的原理和差异有哪些-详细解读
自然语言处理(NLP)领域的多个大型语言模型(如GPT-3、ChatGPT、T5、PaLM、LLaMA和GLM)在结构和功能上有显著差异。以下是对这些模型的原理和差异的深入分析: GPT-3 (Generative Pre-trained Transformer 3) 虽然GPT-4…...
从MySQL到NoSQL:分析传统关系型数据库与NoSQL数据库的协同
引言 数据库是一个系统,用来管理和存储数据的地方。数据在数据库中以一种结构化的方式组织,这样能更容易地查询和处理数据。 关系型数据库是基于关系模型的数据库,它将数据存储在不同的表中,每个表都有各自的独一无二的主键。表与表之间通过共享的数据项相互关联。像MySQ…...
三、树和割集
文章目录 1、树1.1 树的定义1.2 树的性质1.3 极小连通图1.4 树的中心1.5 生成树1.5.1 最小生成树 2、 割点和桥THE END 1、树 1.1 树的定义 \qquad 定义: 一个连通的无圈的图称为树。 \qquad 只有一个顶点的树叫做平凡树。 \qquad 树中度为1的节点称为叶子结点。…...
泛型中<>和()中的类型
尖括号 < > 中的类型参数定义了一组可以被替换的类型占位符,而圆括号 (...) 内的类型使用则是这些类型参数的具体应用场景,展示了这些类型变量如何参与到函数的参数和返回值类型定义中去。这样设计既保证了代码的灵活性,又保持了类型安…...
spark mllib 特征学习笔记 (一)
PySpark MLlib 特征处理详解 PySpark MLlib 提供了丰富的特征处理工具,帮助我们进行特征提取、转换和选择。以下是 PySpark MLlib 中常用的特征处理类及其简要介绍。 1. Binarizer Binarizer 是将连续特征二值化的转换器。 from pyspark.ml.feature import Bina…...
SQLite 日期 时间
SQLite 日期 & 时间 SQLite 是一种轻量级的数据库管理系统,广泛用于各种应用程序中。它支持标准的 SQL 语法,包括对日期和时间的处理。在 SQLite 中,日期和时间可以通过几种不同的方式来存储和操作。 日期和时间数据类型 SQLite 使用 …...

飞书API 2-1:如何通过 API 创建文件夹?
本文探讨如何通过飞书的 API 来创建文件夹。通过 API 创建的文件夹,一般是放在共享空间,如果要放在个人空间,建议手动创建。 查看 API 文档 API 路径,可在飞书开放平台的服务端 API,依次查找云文档>云空间>文件…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...