docker 基本使用

-do1.安装docker:

   Redirecting…

0. docker内使用gpu, 安装nvidia-docker:

  https://github.com/NVIDIA/nvidia-docker,

  安装后使用:nvidia-container-cli -k -d /dev/tty list, 验证正确,无报错,即为正确

1. docker 启动image,如果启动gpu 版本必须用nvidia-docker, -d detach, -i interactive, -t  with fake terminal , -network=host 与本机一样的网络

nvidia-docker run -dit --name icdl --restart=always  --network=host <image> bash

  连接到已有容器  sudo docker exec -it 775c7c9ee1e1 /bin/bash,  

  加入--always, 就是这个docker 挂掉以后,dockerd会自动把这个container启动。systemd把dockerd启动,dockerd守护always的container

2.用docker 代替nvidia-docker 启动带有gpu, cuda 的container

docker run --device=/dev/nvidiactl --device=/dev/nvidia-uvm --device=/dev/nvidia0 -v nvidia_driver_367.48:/usr/local/nvidia:ro -dit --name=test7 --network=host docker.io/bvlc/caffe:gpu  /bin/bash

新版不用这么麻烦了,按照https://github.com/NVIDIA/nvidia-docker,只需docker --runtime=nvidia  ...

 docker19.03后的版本使用:docker --gpus all

3.带gdb支持的container,  run 时候加上--cap-add=SYS_PTRACE

  echo 0 /proc/sys/kernel/yama/ptrace_scope

4. docker attach 以后,使用Ctrl+P and Ctrl+Q离开

5.docker 离线安装 1)https://download.docker.com/linux/static/stable/x86_64/ 下载后,解压到/usr/local/bin下面,2)然后

vi /etc/fstab

#在结尾添加

none       /sys/fs/cgroup        cgroup        defaults    0    0

重启

    3)如果使用gpu, 就用2中命令启动container

6.有哪些container: docker ps -a

7.有哪些image: docker images

8.删除不用的container: docker rm -f face/face1:version1

9.删除image : docker rmi <image>

10.将当前container 保存成image, commit部分,face/face1是仓库名称,version1是tag, 如果docker里面要使用gpu,那么一定不能用11的方式,一定要commit成image, 再load, 否则回报特别多的错误,/usr/lib/x86_64-linux-gnu/libnvidia-*,下面有些文件大小会是0,就算从host拷贝过去,也会遇到其它非常多的错误。nvidia-docker相当于把host的driver直接透传到docker内部

docker commit c3f279d17e0a  face/face1:version1
将image 导出成压缩包:docker save -o /home/sam/aa.tar  face/face1:version1
导入压缩包到image :docker load --input aa.tar
11.直接把container 导出,然后导入,这样文件大小会大大缩小
docker export test20  -o ./faceexport.tar
gzip --best faceexport.tar
cat /home/faceexport.tar | docker import - face:latest

12. 添加卷

ln -s /u01 /var/lib/docker/volumes/volu01
docker volume create volu01
docker run -dit --restart=always --mount source=volu01,target=/u01 --name icdl1 --network=host 93682a1555c1 bash
如果只是-d 没有it,是无法启动的, volu01后边逗号后不能有空格更复杂的是:
docker run -dit --gpus all --restart=always --log-opt max-size=10m -e LANG='en_US.utf8' -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro  -e PATH=/root/anaconda3/bin:/bin/:/usr/bin/ -e MXNET_CUDNN_AUTOTUNE_DEFAULT=0 -e LD_LIBRARY_PATH=:/root/anaconda3/pkgs/cudatoolkit-10.0.130-0/lib/  --name aiex4_v20200104 --network=host aiex4:v20200104  /bin/bash -c ". /root/anaconda3/etc/profile.d/conda.sh && echo  && conda activate mxnet && cd /algorithm_hub; python run.py"docker run --gpus all -itd --restart=always --log-opt max-size=10m --log-opt max-file=1 --ipc=host -h face-machine -e DISPLAY=:0 -e LANG='en_US.utf8' --privileged  -v /tmp/.X11-unix:/tmp/.X11-unix -v /data:/data/ -v /etc/localtime:/etc/localtime -v /data/face_terminal/cameraConfigs/camera_xiaofang.json:/data/face_terminal/cameraConfigExample.json --name face_xiaofang ai/face:1012 /data/face_terminal/docker-run.sh
13.开机启动, 之前已经对卷建立软连接,ln -s /u01 /var/lib/docker/volu01在/etc/rc.local里面加入如下行
systemctl start docker
docker volume create volu01
docker start icdl1
docker exec -d icdl1 starticdl.sh

 其中,starticdl.sh位于container内部/usr/bin/目录下面,内容如下,其中server.py里面,加入了守护程序

#!/bin/bash
cd /idcardDriverlisenceRecog/src/ && python server.py

 守护程序部分见:python守护程序_northeastsqure的专栏-CSDN博客_python守护程序

14. alpine极简版linux,含有busybox

   安装bash: RUN apk add --update bash && rm -rf /var/cache/apk/*

    内无管理员权限,在dockerfile里面:USER root

15.docker内部程序开机启动:

  cd /idcardDriverlisenceRecog/src/
  python /idcardDriverlisenceRecog/src/IDcardVehiclelisenceRecog_facepp_youtu.py

  exit 0

16. 让docker 某 container 与docker 一同起来,即永远不停机

  

docker update CONTAINER --restart always

17. 制作ubuntu1604,docker

  从这里连接制作,跟着18命令,https://github.com/tianon/docker-brew-ubuntu-core/tree/010bf9649b1d10e2c34b159a9a9b338d0fdd4939/xenial

18. 从dockerfile得到docker image

   docker build --tag='ubuntu1604:Dockerfile' .

19. 运行docker命令,比如docker ps,遇到:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json: dial unix /var/run/docker.sock: connect: permission denied

  把当前用户加入到docker组,然后重新登录

 sudo usermod -a -G docker $USER

 不重新登录执行:sg docker -c "bash"

20. 把文件夹复制到docker container里面,或者拷贝出来

  docker cp src/opencv-2.4.13.6 seetaface_ubuntu1604:/

  两个参数倒过来,就是拷出来

21.遇到错误:stderr: nvidia-container-cli: initialization error: cuda error: unknown error\\\\n\\\

    百思不得其解,很多说是驱动问题,我想,驱动什么问题呢,然后查看nvidia docker的架构,启动docker image,是不依赖与host的cuda的,那么为什么报cuda error, 没有理解。后面重启系统,结果好了,系统很久没有重启了。问题还是没有理解,为什么报cuda error呢,不装cuda也是可以的呀。

22.搜索docker错误的时候,遇到说用dmesg查看,那么它是干什么的?

 dmesg是打印 kernel ring buffer

23.什么是kernel ring buffer?

  在syslog daemon启动以前,操作系统把日志保存到kernal ring buffer里面,写到/var/log/dmesg,里面。syslog daemon启动后,内核的消息也是写到这里,同时写到syslog里面。

24.什么是nvidia-uvm?

  uvm:unfied virtual memory.  每个gpu有自己的显存,系统有自己的ram内存,那么如何分别访问呢?如果没有uvm,那么编程者,要指定我的程序是在 ram,还是在gpu, 有了uvm,那么所有的存储空间是统一的。

UVA-1024x407

CUDA 6 Unified Memory explained - StreamHPC

可见,cuda编程,这个模块是必须的,所以nvidia docker启动必须加载这个模块。

25.开启图形显示

xhost local:docker

docker run -it --name xwin -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/ckhung/data:/tmp/exdata ubuntu:18.04 bash

apt-get install -y x11-apps

与外面主机用户同名

useradd -m -s /bin/bash -u 1000 silva

su silva

26. container 启动以后如何更改container 的主机名称?

lsns
nsenter --target 1785 --uts hostname hostname_abc
https://serverfault.com/questions/716719/how-do-i-change-docker-host-name-after-the-image-creation/717191

27.如何离线安装 nvidia container toolkit?

   下载 Release v1.17.2 · NVIDIA/nvidia-container-toolkit · GitHub

    然后tar xf解压

    然后dpkg -i 安装   

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

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

相关文章

手机的ip地址是根据电话卡归属地定吗

在智能手机普及的今天&#xff0c;IP地址作为我们连接互联网的“门牌号”&#xff0c;其来源和确定方式常常引发用户的好奇。特别是关于手机IP地址是否与电话卡的归属地直接相关&#xff0c;这一话题更是众说纷纭。本文将深入探讨这一问题&#xff0c;为您揭开手机IP地址与电话…

计算机网络 (32)用户数据报协议UDP

前言 用户数据报协议&#xff08;UDP&#xff0c;User Datagram Protocol&#xff09;是计算机网络中的一种重要传输层协议&#xff0c;它提供了无连接的、不可靠的、面向报文的通信服务。 一、基本概念 UDP协议位于传输层&#xff0c;介于应用层和网络层之间。它不像TCP那样提…

YOLOv5改进 | CARAFE提高精度的上采样方法

目录 1 CARAFE模块原理 1.1 上采样的表示 1.2 Motivation 2 YOLOv5中加入CARAFE模块 2.1 ultralytics/nn/modules/block.py文件配置 2.2 ultralytics/nn/tasks.py配置 2.3 创建添加优化点模块的yolov5x-CARAFE.yaml 参考文献 1 CARAFE模块原理 上采样操作可以表示为…

高通,联发科(MTK)等手机平台调优汇总

一、常见手机型号介绍&#xff1a; ISP除了用在安防行业&#xff0c;还有手机市场&#xff0c;以及目前新型的A/VR眼睛&#xff0c;机器3D视觉机器人&#xff0c;医疗内窥镜这些行业。 下面是一些最近几年发布的,,,旗舰SOC型号&#xff1a; 1.联发科&#xff1a;天玑92…

windows从0开始配置llamafactory微调chatglm3-6b

后续会更新 从0学习LLaMaFactory参数解释说明 &#xff0c;请期待~ 文章目录 一、准备工作1、创建python虚拟环境(annoconda)2、配置pytorch傻瓜版3、llamafactory配置4、微调数据准备5、开始微调5.1 webui启动微调5.2 指令启动微调 一、准备工作 1、创建python虚拟环境(annoc…

某漫画网站JS逆向反混淆流程分析

文章目录 1. 写在前面1. 接口分析2. 反混淆分析 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Pyth…

netplan apply报错No module named ‘netifaces‘

Ubuntu 20.04.5 LTS \n \l&#xff0c;ctrlaltf2切换字符登录f1切换图形 处理办法&#xff1a; root登录执行 rootnode37:/disk1/Qwen2.5-72B-Instruct-GPTQ-Int4# cat /etc/netplan/01-network-manager-all.yaml # Let NetworkManager manage all devices on this system …

LabVIEW 系统诊断

LabVIEW 系统诊断是指通过各种工具和方法检测、评估、分析和解决 LabVIEW 程序和硬件系统中可能存在的故障和性能问题。系统诊断不仅涵盖软件层面的调试与优化&#xff0c;还包括硬件交互、数据传输、实时性能等方面的检查和分析。一个成功的系统诊断能够显著提升LabVIEW应用程…

【Docker】docker compose 安装 Redis Stack

注&#xff1a;整理不易&#xff0c;请不要吝啬你的赞和收藏。 前文 Redis Stack 什么是&#xff1f; 简单来说&#xff0c;Redis Stack 是增强版的 Redis &#xff0c;它在传统的 Redis 数据库基础上增加了一些高级功能和模块&#xff0c;以支持更多的使用场景和需求。Redis…

慧集通(DataLinkX)iPaaS集成平台-数据流程之流程透明化调试功能简介

在线运行流程 查看运行状态 流程第一次执行状态显示 流程第二次执行状态显示&#xff08;由于订单已同步到七星ERP中&#xff0c;由于还是这些订单所以第二次同步时就报错了&#xff09; 点击查看节点组件的详细入参与出参信息 U8C销售订单读取组件执行时详情 入参-查询条件…

数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall

数据集-目标检测系列- 电话 测数据集 call DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” 贵在坚持&#xff01; …

【PPTist】公式编辑、插入音视频、添加动画

一、插入公式 点击公式的时候 latexEditorVisible 会变成 true src/views/Editor/CanvasTool/index.vue <Modalv-model:visible"latexEditorVisible" :width"880" ><LaTeXEditor close"latexEditorVisible false"update"data &…

istio-proxy oom问题排查步骤

1. 查看cluster数量 cluster数量太多会导致istio-proxy占用比较大的内存&#xff0c;此时需检查是否dr资源的host设置有配置为* 2. 查看链路数据采样率 若采样率设置过高&#xff0c;在压测时需要很大的内存来维护链路数据。可以调低采样率或增大istio-proxy内存。 检查iop中…

【数据库】四、数据库管理与维护

文章目录 四、数据库管理与维护1 安全性管理2 事务概述3 并发控制4 备份与恢复管理 四、数据库管理与维护 1 安全性管理 安全性管理是指保护数据库&#xff0c;以避免非法用户进行窃取数据、篡改数据、删除数据和破坏数据库结构等操作 三个级别认证&#xff1a; 服务器级别…

rhcsa练习(3)

1 、创建文件命令练习&#xff1a; &#xff08; 1 &#xff09; 在 / 目录下创建一个临时目录 test &#xff1b; mkdir /test &#xff08; 2 &#xff09;在临时目录 test 下创建五个文件&#xff0c;文件名分别为 passwd &#xff0c; group &#xff0c; bashrc &#x…

如何设计一个注册中心?以Zookeeper为例

这是小卷对分布式系统架构学习的第8篇文章&#xff0c;在写第2篇文章已经讲过服务发现了&#xff0c;现在就从组件工作原理入手&#xff0c;讲讲注册中心 以下是面试题&#xff1a; 某团面试官&#xff1a;你来说说怎么设计一个注册中心&#xff1f; 我&#xff1a;注册中心嘛&…

【云商城】高性能门户网构建

第3章 高性能门户网构建 网站门户就是首页 1.OpenResty 百万并发站点架构 ​ 1).OpenResty 特性介绍 ​ 2).搭建OpenResty ​ 3).Web站点动静分离方案剖析 2.Lua语法学习 ​ 1).Lua基本语法 3.多级缓存架构实战 ​ 1).多级缓存架构分析 用户请求网站&#xff0c;最开始…

Cognitive architecture 又是个什么东东?

自Langchain&#xff1a; https://blog.langchain.dev/what-is-a-cognitive-architecture/ https://en.wikipedia.org/wiki/Cognitive_architecture 定义 A cognitive architecture refers to both a theory about the structure of the human mind and to a computational…

js代理模式

允许在不改变原始对象的情况下&#xff0c;通过代理对象来访问原始对象。代理对象可以在访问原始对象之前或之后&#xff0c;添加一些额外的逻辑或功能。 科学上网过程 一般情况下,在访问国外的网站,会显示无法访问 因为在dns解析过程,这些ip被禁止解析,所以显示无法访问 引…

多目标优化算法之一:基于分解的方法

在多目标优化算法中,“基于分解的方法”通常指的是将多目标优化问题(MOP)分解为多个单目标优化子问题,并同时优化这些子问题。这种方法的核心思想是通过引入权重向量或参考点,将多目标问题转化为多个标量优化问题,每个子问题都关注于原始问题的一个特定方面或视角。这样可…