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

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是命令的路径&#xff0c;一般我们用绝对路径 system函数会创建新的进程&#xff0c;新的进程执行完返回原来的进程&#xff0c;原来的进程则继续执行后面的代码段。 如我们创建一个sys.cpp文件…...

STM32存储左右互搏 模拟U盘桥接SPI总线FATS读写FLASH W25QXX

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

jrt从量变到质变

又是一个加班的周末&#xff0c;上周把台式机代码和数据库环境弄好了&#xff0c;这周进行大数据测试&#xff0c;直接把标本、标本医嘱、报告、报告结果、药敏结果等数据插入到1亿的规模&#xff0c;跑了一天一夜插入了5000多万个标本&#xff0c;后面接着补剩下的到一亿。 演…...

NLP主流大模型如GPT3/chatGPT/T5/PaLM/LLaMA/GLM的原理和差异有哪些-详细解读

自然语言处理&#xff08;NLP&#xff09;领域的多个大型语言模型&#xff08;如GPT-3、ChatGPT、T5、PaLM、LLaMA和GLM&#xff09;在结构和功能上有显著差异。以下是对这些模型的原理和差异的深入分析&#xff1a; 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 定义&#xff1a; 一个连通的无圈的图称为树。 \qquad 只有一个顶点的树叫做平凡树。 \qquad 树中度为1的节点称为叶子结点。…...

泛型中<>和()中的类型

尖括号 < > 中的类型参数定义了一组可以被替换的类型占位符&#xff0c;而圆括号 (...) 内的类型使用则是这些类型参数的具体应用场景&#xff0c;展示了这些类型变量如何参与到函数的参数和返回值类型定义中去。这样设计既保证了代码的灵活性&#xff0c;又保持了类型安…...

spark mllib 特征学习笔记 (一)

PySpark MLlib 特征处理详解 PySpark MLlib 提供了丰富的特征处理工具&#xff0c;帮助我们进行特征提取、转换和选择。以下是 PySpark MLlib 中常用的特征处理类及其简要介绍。 1. Binarizer Binarizer 是将连续特征二值化的转换器。 from pyspark.ml.feature import Bina…...

SQLite 日期 时间

SQLite 日期 & 时间 SQLite 是一种轻量级的数据库管理系统&#xff0c;广泛用于各种应用程序中。它支持标准的 SQL 语法&#xff0c;包括对日期和时间的处理。在 SQLite 中&#xff0c;日期和时间可以通过几种不同的方式来存储和操作。 日期和时间数据类型 SQLite 使用 …...

飞书API 2-1:如何通过 API 创建文件夹?

本文探讨如何通过飞书的 API 来创建文件夹。通过 API 创建的文件夹&#xff0c;一般是放在共享空间&#xff0c;如果要放在个人空间&#xff0c;建议手动创建。 查看 API 文档 API 路径&#xff0c;可在飞书开放平台的服务端 API&#xff0c;依次查找云文档>云空间>文件…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...