Docker笔记(基本命令、挂载本地gpu、Dockerfile文件配置、数据挂载、docker换源)

Docker

主要用于环境搭建以及服务部署

基本命令

1.查看镜像

docker images  

2.查看容器

docker ps # 查看容器仅仅为查看运行状态的容器
docker ps -a # 查看所有状态的容器

3.退出容器

exit

4.删除镜像、容器

docker rm 镜像ID
docker rm 容器ID
docker rm -f 容器ID # 强制删除

5.下拉镜像

docker pull  镜像名称[:标签]
docker pull ubuntu:20.04 

6.构建容器

docker run [选项] 镜像名称[:标签] [命令]
docker run -it --name my-ubuntu ubuntu:20.04 /bin/bash

7.进入容器

docker exec -it 容器ID或容器名称 /bin/bash

8.容器封装为镜像

docker commit 容器id 新镜像的名称:新镜像的版本

9.本地文件传输到容器

docker cp 本地路径  容器id:容器路径

10.镜像导出压缩包

 docker save -o new_name.tar image_name

Docker 中挂载并使用本地 GPU

要在 Docker 中挂载并使用本地 GPU,需要满足特定条件并进行相应配置。以下是详细步骤:

前提条件

  1. 本地主机需安装 NVIDIA 显卡 并配置好驱动
  2. 安装 NVIDIA Container Toolkit(用于在容器中支持 GPU)

安装 NVIDIA Container Toolkit

  1. 首先确保已安装 Docker Engine(略,可参考 Docker 官方文档)
  2. 安装 NVIDIA 容器工具包:
# 添加 NVIDIA 源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list# 安装工具包
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit# 重启 Docker 服务
sudo systemctl restart docker

运行支持 GPU 的容器

使用 --gpus 参数指定需要挂载的 GPU,常用命令格式:

使用所有 GPU

docker run --gpus all -it 镜像名称 命令

如果成功,会显示类似本地 nvidia-smi 的输出,表明容器已识别到 GPU。

Dockerfile

Dockerfile 是一个文本文件,包含一系列构建 Docker 镜像的指令。通过 Dockerfile,可以自动化、可重复地构建自定义镜像。

基本结构 指令+参数

FROM:指定基础镜像(必须是第一条指令)
WORKDIR:设置工作目录
COPY/ADD:复制文件到镜像
RUN:执行命令(构建时运行)
ENV:设置环境变量
EXPOSE:声明容器运行时监听的端口
CMD/ENTRYPOINT:指定容器启动时执行的命令

本地在dockerfile文件下进行构建镜像

通过dockerfile构建镜像,docker会自动搜索dockerfile文件,进行执行

# 格式:docker build -t 镜像名称[:标签] 构建上下文路径
docker build -t my-python-app:v1 .

本地在dockerfile文件下进行运行镜像

自动执行dockerfile里面的命令

docker run -name new_name_container my-python-app:v1

数据挂载

1.

docker volume create mydate # 构建数据卷类似于共享网盘

2.两种方式

docker run -it -rm -v ~/Downloads/data:/date  # 本机路径:容器路径
docker run -it -rm -v mydate:/app . # 容器路径,一般情况,容器消失之后会自动删除,所以需要保护数据安全,进行数据挂载,最好挂载在本地,数据相对安全。

Docker更换镜像源提高拉取速度

在国内,由于网络政策和限制,直接访问DockerHub速度很慢,尤其是在拉取大型镜像时。为了解决这个问题,常用的方法就是更换镜像源。

永久docker换源,提升下拉速度

1. 创建配置目录

首先需要创建一个配置目录,通常在/etc/docker下:

sudo mkdir -p /etc/docker
2. 修改daemon.json配置文件

需要在该目录下创建(或修改)daemon.json文件,并将镜像源地址写入文件。可以使用命令行直接输入配置:

打开daemon.json

sudo nano /etc/docker/daemon.json

添加换源内容

{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com","https://docker.1ms.run","https://func.ink","https://lispy.org","https://docker.xiaogenban1993.com"]
}
3. 重启Docker服务
sudo systemctl daemon-reload && sudo systemctl restart docker
4.验证服务
sudo docker pull continuumio/anaconda3

进行验证下拉速度,确定换源是否成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/93243.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法竞赛阶段二-数据结构(37)数据结构循环链表模拟实现

之前单链表中,数组全初始化为0,末尾最后一个next 存的就是0,指向的就是头节点循环链表的基本概念循环链表是一种特殊的链表,其尾节点的指针域指向头节点,形成一个闭环。与普通单链表相比,循环链表的遍历需要…

20250727让飞凌OK3576-C开发板在Rockchip的原厂Android14下通过耳机播音

20250727让飞凌OK3576-C开发板在Rockchip的原厂Android14下通过耳机播音 2025/7/27 23:28缘起:很容易知道 飞凌OK3576-C开发板 使用的声卡芯片是 NAU88C22YG 新唐科技(NUVOTON) NAU8822LYG NAU88C22YG 新唐立体声音频编解码芯片原理图:OK3576-C V1.2_202…

正向代理和反向代理的理解

**正向代理(Forward Proxy)和反向代理(Reverse Proxy)**是两种不同类型的代理服务器,它们在数据传输过程中扮演的角色、使用场景以及工作方式都有所不同。 正向代理(Forward Proxy) 定义与作用&…

Java 后端 Cookie Session Token会话跟踪技术

概述 会话从字面理解就是"两方交流",那问题就来了,HTTP(超文本传输协议)里面的"传输"不就包含了"两方交流"的意思吗?为什么要多此一举提出会话技术呢? 谈到这个,…

智谱AI GLM大模型 GLM-4-Plus的快速使用 ChatOpenAI类来调用GLM-4模型

智谱AIGLM-4,2024年1月16日发布的第四代基座大模型,其整体性能相较前代提升近60%,多维度指标逼近OpenAI的GPT-4水平。该模型支持128K上下文窗口(约300页文本处理能力),在长文本信息处理中实现100%精度召回。…

AsyncLocal浅复制的问题解决方案

针对C#中AsyncLocal<T>浅复制问题&#xff0c;以下是几种主要的解决方案&#xff1a; 1. 使用不可变对象&#xff08;推荐&#xff09; 将存储在AsyncLocal<T>中的对象设计为不可变的&#xff0c;避免修改共享状态&#xff1a; public class ImmutableUserContext …

IIS发布.NET9 API 常见报错汇总

记录工作过程中发现的IIS常见错误。 1. HTTP Error 500.19 - Internal Server Error .NET 9 API --》vs打包方式如下&#xff1a; 发布到IIS后报错HTTP Error 500.19 - Internal Server Error。 解决方案&#xff1a; 下载ASP.NET Core Hosting Bundle&#xff08;ASP.NET Co…

Google Chrome V8< 13.7.120 沙箱绕过漏洞

【严重】Google Chrome V8< 13.7.120 沙箱绕过漏洞 漏洞描述 V8 是 Google 开发的一款开源高性能 JavaScript 和 WebAssembly 引擎&#xff0c;广泛用于 Chrome 浏览器和 Node.js 等项目中。 受影响版本中&#xff0c;JsonParser::MakeString 函数在处理长度为 1 的转义字…

基于Spring Boot和Vue电脑维修平台整合系统的设计与实现

用户&#xff1a;注册&#xff0c;登录&#xff0c;在线报修&#xff0c;维修接单&#xff0c;维修报告&#xff0c;维修评价&#xff0c;个人资料维修工&#xff1a;登录&#xff0c;在线报修&#xff0c;维修接单&#xff0c;维修报告&#xff0c;维修评价&#xff0c;通知公…

InsightFace(RetinaFace + ArcFace)人脸识别项目(预训练模型,鲁棒性很好)

背景介绍 这是一个 简单的人脸识别项目&#xff0c;用 FastApi 在本地实现&#xff0c;使用预训练模型&#xff0c;直接可用。 新方案比之前的FaceNet强太多了&#xff0c;甚至不用数据增强等操作&#xff0c;就可以识别戴眼镜、不戴眼镜、歪着的人脸等。 充分证明了选型的重要…

App Inventor 2 使用 MaterialIcons 图标字体,快捷展示专业图标

平时布局的话&#xff0c;如果要使用图标&#xff0c;一般需要去找 png 图片&#xff0c;且透明背景的。如果需要根据不同常见图标进行变色的话&#xff0c;就需要准备多张不同样式的图标&#xff0c;还要考虑图片的分辨率等等因素&#xff0c;非常的麻烦。 这时&#xff0c;如…

C语言——关于指针(逐渐清晰版)

为了更好地理解本篇文章的知识内容&#xff0c;读者可以将以下文章作为补充知识进行阅读 &#xff1a; C语言————原码 补码 反码 &#xff08;超绝详细解释&#xff09;-CSDN博客 C语言————二、八、十、十六进制的相互转换-CSDN博客 C语言————斐波那契数列的理解…

SVG 在线编辑器

SVG 在线编辑器 引言 随着互联网技术的发展&#xff0c;矢量图形在网页设计和数据可视化中扮演着越来越重要的角色。SVG&#xff08;可缩放矢量图形&#xff09;因其文件小、无限缩放不模糊的特性&#xff0c;成为了网页设计中常用的图形格式。SVG 在线编辑器的出现&#xff0c…

libpostproc 已经从 ffmpeg 中移除,导致编译 ffmpeg 时没有 libpostproc

今天编译 ffmpeg 时突然发现 libpostproc 不见了&#xff0c;-enable-postproc 也变成了非法的选项。用搜索引擎搜索相关信息找不到一点&#xff0c;于是去 github 看。 从提交记录可以看到 libpostproc 已经被移除了 链接 主线中已经看不到了 libpostproc 这个目录了

基于 Dell PowerEdge T440 搭建的 Proxmox VE 配置 RTX 3060 显卡直通虚拟机、切换直通

基于 Dell PowerEdge T440 搭建的 Proxmox VE 配置 RTX 3060 显卡直通虚拟机、切换直通 文章目录 基于 Dell PowerEdge T440 搭建的 Proxmox VE 配置 RTX 3060 显卡直通虚拟机、切换直通 1. 前言 2. 前提条件 3. 配置步骤 3.1. 启用 VT-d 3.2. 激活 IOMMU 3.3. 添加 VFIO 模块 …

如何解决pip安装报错ModuleNotFoundError: No module named ‘voila’问题

【Python系列Bug修复PyCharm控制台pip install报错】如何解决pip安装报错ModuleNotFoundError: No module named ‘voila’问题 摘要 在开发过程中&#xff0c;我们常常会遇到pip安装包时出现各种错误&#xff0c;特别是在使用PyCharm进行开发时。本文将详细介绍如何解决安装…

[spring6: @EnableWebMvc]-源码分析

源码 EnableWebMvc EnableWebMvc 是用于启用 Spring MVC 的注解&#xff0c;它通过导入 DelegatingWebMvcConfiguration 来加载默认的 MVC 配置&#xff0c;同时允许开发者通过实现 WebMvcConfigurer 接口来自定义部分配置&#xff1b;若需更高阶的控制&#xff0c;则可直接继承…

Jmeter的元件使用介绍:(四)前置处理器详解

Jmeter的前置处理器可以用来在取样器执行前做一些数据准备操作&#xff0c;也需要注意使用的作用域问题。常用的前置处理器有&#xff1a;用户参数、BeanShell预处理器、JDBC预处理器。一、用户参数 【用户参数】与前面介绍过的【用户定义的变量】有相似之处&#xff0c;先来介…

十七、K8s 可观测性:全链路追踪

十七、K8s 可观测性&#xff1a;全链路追踪 文章目录十七、K8s 可观测性&#xff1a;全链路追踪1、Skywalking 初识1.1 为什么需要全链路追踪平台1.2 全链路追踪核心组件及工作原理1.2.1 全链路追踪核心概念1.2.2 全链路追踪工作原理1.3 什么是Skywalking&#xff1f;1.4 Skywa…

2025 Gitee vs. GitLab:全面对比与选择指南

在软件研发持续加速、合规要求日益严格的背景下&#xff0c;选择合适的代码托管平台成为团队数字化能力建设的关键环节。尤其在中国本土市场&#xff0c;Gitee正凭借其深度本地化能力、全面生态整合和开源社区支撑&#xff0c;成为国内团队首选的开发协作平台。 一、Gitee&…