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,依次查找云文档>云空间>文件…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...