Docker 部署

1 完全清除旧版本docker

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Images, containers, volumes, and networks stored in /var/lib/docker/ aren't automatically removed when you uninstall Docker. If you want to start with a clean installation,To delete all images, containers, and volumes:

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

2  安装docker Get DOcker

2.0 离线安装

  1. Go to   docker download
  2. Go to pool/stable/ and select the applicable architecture (amd64armhfarm64, or s390x).

  3. Download the following deb files for the Docker Engine, CLI, containerd, and Docker Compose packages:

    • containerd.io_<version>_<arch>.deb
    • docker-ce_<version>_<arch>.deb
    • docker-ce-cli_<version>_<arch>.deb
    • docker-buildx-plugin_<version>_<arch>.deb
    • docker-compose-plugin_<version>_<arch>.deb
  4. install all the deb
    sudo dpkg -i ./containerd.io_<version>_<arch>.deb \./docker-ce_<version>_<arch>.deb \./docker-ce-cli_<version>_<arch>.deb \./docker-buildx-plugin_<version>_<arch>.deb \./docker-compose-plugin_<version>_<arch>.deb
    

   2.1  X86_64在线安装docker-ce

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce -y
sudo systemctl enable docker 

3 Docker 常用命令 

  • docker  save -o  xxx.tar images_name
  • docker load -i xxx.tar
  • 启动 imaes as container  sudo docker run -it --runtime=nvidia -v /data:/work  images_name /bin/bash
  • sudo docker run -d -it --runtime nvidia -v /data:/work  images_name /bin/bash(后台运行)
  • docker  exec -it id  /bin/bash #进入容器,前提是必须执行上面步骤
  • docker  exec -d id  /bin/bash /opt/command #后台进入docker 执行指令

4 更新docker里的文件,并打包成新镜像

      参考链接 docker 从入门到实践

  1. docker run -d -it images_id /bin/shdocker psdocker exec -it contanined_id bashchange your fileexitdocker commit -m "提交信息" -a "作者" contain_id new_images_id:tagdocker imagesdocker save -o xxx.tar new_images_id

5 在docker 中使用GPU资源

1 在docker中使用gpu资源有以下几种方法:

  • 因为GPU属于特定的厂商产品,需要特定的driverDocker本身并不支持GPU。以前如果要在Docker中使用GPU,就需要在container中安装主机上GPU的driver,然后把主机上的GPU设备(例如:/dev/nvidia0)映射到container中。所以这样的Docker image并不具备可移植性。

    Nvidia-docker项目就是为了解决这个问题,它让Docker image不需要知道底层GPU的相关信息,而是通过启动containermount设备和驱动文件来实现的。

在你使用 nvidia-docker2 的时候,你需要做的有两件事

  • 安装GPU 的 driver Dirver Download
  • 安装 docker 19.03
  • 你不需要安装 CUDA
    • 集成到 nvidia-docker 了
    • 显卡驱动在主机上,包含显卡驱动和CUDA Driver,我们安装的cuda主要是cuda tookit(包含在nvidia-docker内)
  • nvidai-docker 官方安装流程
  • If you have a custom /etc/docker/daemon.json, the nvidia-docker2 package might override it.

nvidia-docker 2.0 的核心东西是nvidia-contained-runtime,它主要通过修改docker的配置文件/etc/docker/daemon.json来让docker使用NVIDIAContainerRuntime。

如你安装完nvidia-docker2,deamon.json 内容如下,确保本地部署的模型在GPU上正确运行

{"runtimes": {"nvidia": {"path": "nvidia-container-runtime","runtimeArgs": []}}
}

2   在Docker启动命令上携带参数可以调用GPU资源。以下是两种方法:

  • 使用--gpus参数:指定使用的GPU设备。可以使用多个参数来指定多个设备,例如--gpus all表示使用所有GPU设备,--gpus 0,1表示使用编号为0和1的两个设备。

        示例:docker run --gpus all my_image

  • 使用--runtime=nvidia参数:指定使用NVIDIA GPU运行时,需要在安装Docker时安装NVIDIA Container Toolkit。

        示例:docker run --runtime nvidia my_image

  • 另外,也可以使用--device参数来指定使用的GPU设备,例如--device=/dev/nvidia0:/dev/nvidia0表示使用/dev/nvidia0设备。但需要注意的是,该参数的使用方法可能会因不同的操作系统和Docker版本而略有不同。
  • Ubuntu 在线安装 nvidia-docker2
    #install nvidia-docker2
    curl -sL https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -sL https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list
    sudo apt update
    sudo apt install nvidia-docker2 -y

    6 常见docker 镜像

  •  Nvidia Jetson 系列 

  • Huawei Ascend

  • nvidia/cuda

  • nvidia container runtime on Jeston

  • CUDA upgrade for Jetson User

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

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

相关文章

一种退避序列实现

介绍功能和需求背景 介绍代码上下文&#xff0c;思路&#xff0c;方案。 讲解代码&#xff0c;评委穿插提问。参会的其他同学有问题也可以提。 评委对代码给建议和反馈 写在前面 你有一个苹果&#xff0c;我有一个苹果&#xff0c;交换一下我们还是只有一个苹果&#xff1b;…

人防行业通信系统

深圳市华脉智联科技有限公司是一家拥有核心自主知识产权的高科技企业&#xff0c;公司致力于公网对讲、融合通信、应急通信、执法调度等领域的系统和技术的开发和探讨&#xff0c;为行业用户提供一整套以通信为基础&#xff0c;软硬件结合的实战解决方案。华脉智联始终坚持将解…

RabbitMQ中的核心概念和交换机类型

目录 一、RabbitMQ相关概念二、Exchange类型三、RabbitMQ概念模型总结 一、RabbitMQ相关概念 Producer&#xff1a;生产者&#xff0c;就是投递消息的一方。生产者创建消息&#xff0c;然后发布到RabbitMQ中。消息一般可以包含两个部分&#xff1a;消息体和附加消息。 消息体…

git 新建 branch 推送 到服务器

通常情况下&#xff0c;需要开发一个模块&#xff0c;从 master 新建立了一个 分支&#xff0c;newbranch&#xff0c;如果推送到服务器&#xff1b; 1&#xff1a;从远程 master 建立本地分支 newbranch&#xff1b; git checkout -b newbranch origin/master 2:当修改完成代码…

@JsonCreator(mode = JsonCreator.Mode.DELEGATING) @JsonValue解释

@JsonCreator(mode = JsonCreator.Mode.DELEGATING)public MessageId(Long id) {this.id = id;}<

jmeter集成kafka测试

Kafka的使用 查看kafka的topic ./kafka-topics --bootstrap-server 10.1.9.84:9092 --list 查看topic信息 ./kafka-topics --bootstrap-server 10.1.9.84:9092 --describe --topic topic_example_1 创建topic 创建topic名为test&#xff0c;分区数为8&#xff0c;副本数为…

nginx动静分离

1、简单概述 Nginx动静分离简单说就是将动态请求和静态请求分开。可以理解说是用nginx处理静态页面&#xff0c;Tomcat处理动态页面。动静分离目前分为两种 方式一&#xff1a;纯粹将静态文件独立成单独的域名&#xff0c;放在独立的服务器上&#xff0c;也是目前主流的推崇方…

CSS【基础】

目录 一、CSS的介绍 二、CSS语法规则 三、CSS引入方式 四、CSS的基础选择器 五、CSS属性: 字体font 六、CSS属性&#xff1a;文本text 七、CSS属性&#xff1a;颜色 八、样式层叠问题 九、谷歌浏览器的调试工具 十、拓展&#xff1a;标签(盒子)水平居中的方法 一、C…

idgen导入Android11源码

文章目录 配置下载AS编译源码依赖导入玩一下andorid.iml 注意&#xff1a; 有些时候发现为啥自己编译就这么难呢&#xff1f;不是卡死就无数次重启虚拟机&#xff0c;一切的原罪在配置过低&#xff0c;换句话说就是穷。关于导入源码的下载参考 Android Studio for Platform (AS…

MAC如何在根目录创建文件

在这之前先明确一下啥是根目录。 打开终端&#xff0c;输入cd /&#xff0c;然后输入 ls 查看根目录下有哪些文件 可以看到 usr、etc、opt 这些文件的地方才叫根目录&#xff0c;而不是以用户命名&#xff0c;可以看到音乐、应用程序、影片、桌面的地方哈 介绍一种叫做软连接…

python字典

字典 字典定义创建字典 字典定义 字典是python语言中唯一的映射类型。这种映射类型由键&#xff08;key&#xff09;和值&#xff08;value&#xff09;组成&#xff0c;是“键值对”的无序可变序列 定义字典时&#xff0c;每个元组的键和值用冒号隔开&#xff0c;相邻元素用…

lspci源码

lspci 显示Linux系统的pci设备最简单的方法就是使用lspci命令&#xff0c;前提是要安装pciutils包&#xff08;centos在最小化安装时不会自带该包&#xff0c;需要自己下载安装&#xff09; pciutils包的源码github地址为&#xff1a; https://github.com/pciutils/pciutils …

Python数据挖掘实用案例——自动售货机销售数据分析与应用

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

【试题028】C语言关于逻辑与的短路例题

1.题目&#xff1a;设inta1,b;&#xff0c;执行b0&&(a);后&#xff0c;变量a的值是&#xff1f; 2.代码解析&#xff1a; #include <stdio.h> int main() {//设inta1,b;执行b0&&(a);后&#xff0c;变量a的值是?int a 1, b;printf("表达式的值是…

SQL 语法

SQL 语法规则 SQL语句总是以关键字开始&#xff0c;如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。SQL语句以分号结尾。SQL不区分大小写&#xff0c;意味着update与UPDATE相同。 数据库表 数据库通常包含一个或多个表。每个表都用一个名称标识&#xff08;例如&#xff0c;…

【ELK使用指南 2】常用的 Logstash filter 插件详解(附应用实例)

Logstash filter 一、logstash filter过滤插件的常用模块简介二、grok 正则捕获插件2.1 grok插件的作用2.2 内置正则表达式2.3 自定义正则表达式 三、mutate 数据修改插件3.1 mutate插件的作用3.2 常用的配置选项3.3 mutate插件应用实例 四、multiline 多行合并插件4.1 multili…

Mac上安装和配置Git

在Mac上安装和配置Git是一个相对简单的过程&#xff0c;以下是一份详细的步骤指南。 首先&#xff0c;你需要确保你的Mac已经安装了Homebrew&#xff08;如果还没有安装&#xff0c;可以通过以下命令安装&#xff1a;&#xff09;&#xff0c;Homebrew是一个包管理器&#xff…

Unity之ShaderGraph如何实现马赛克效果

前言 今天我们来实现一个马赛克的效果 如下所示&#xff1a; 关键节点 Posterize&#xff1a;色调分离节点 图像的色调分离或色调分离需要将色调的连续渐变转换为色调较少的几个区域&#xff0c;并从一种色调突然改变为另一种色调。 原理 原理就是通过色调分离节点&…

thinkphp队列的使用?

1.安装队列依赖 由于框架版本原因可以选择适合的版本 composer require topthink/think-queue 由于我是tp框架5.1的&#xff0c;所以选择了think-queue 1.1.6 composer require topthink/think-queue 1.1.6 判断安装成功 php think queue:work -h image.png 2.配置文件…

yolov5多个框重叠问题

NMS&#xff08;Non-Maximum Suppression&#xff0c;非极大值抑制&#xff09;是一种在计算机视觉和目标检测领域常用的技术。它通常用于在图像或视频中找出物体或目标的位置&#xff0c;并剔除重叠的边界框&#xff0c;以确保最终的检测结果准确且不重叠。 会出现多个框重叠…