DOCKER UBUNTU 配置

2023-11-16

***TensorRT 8.2.1.8 安装笔记(超全超详细)|Docker 快速搭建 TensorRT 环境 - 知乎

1:DOCKER 深度学习环境基本要素

1.Docker部署深度学习服务器,CUDA+cudnn+ssh_铜锣烧阿南Anan的博客-CSDN博客

1.1 Ubuntu18.04安装Nvidia-docker2报错:gpg: 找不到有效的 OpenPGP数据

Ubuntu18.04安装Nvidia-docker2报错:gpg: 找不到有效的 OpenPGP数据_anglemanyi的博客-CSDN博客

1.2 docker 和宿主机时区同步

1.2.1 将显示时间由UTC更改为CST的方法

只需要在/etc/profile末尾添加一行(再~/.bashrc中加入下面信息,可以下次自动更改)

export TZ='CST-8'
然后执行 source /etc/profile 使文件生效

即可成功更改

1.2.2   

docker run -ti -d --name my-nginx -v /etc/localtime:/etc/localtime:ro  docker.io/nginx  /bin/bash

docker同步时区时间 - 清风软件测试 - 博客园

1.2.3 利用dockerfile直接封装镜像

FROM updatenc:v3
ENV TZ="CST-8"
RUN chmod +x /workspace/start_update.sh
RUN  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  && echo 'Asia/Shanghai' >/etc/timezone 
WORKDIR /workspace
ENTRYPOINT /workspace/start_update.sh && tail -f /dev/null

1.4

# 方法1:直接在宿主机操作
docker cp /etc/localtime 【容器ID或者NAME】:/etc/localtime
docker cp -L /usr/share/zoneinfo/Asia/Shanghai 【容器ID或者NAME】:/etc/localtime
 
# 方法2:登录容器同步时区timezone
ln -sf /usr/share/zoneinfo/Asia/Singapore /etc/localtime

2:安装python

Docker下的ubuntu 安装python3.6 及pip3 - 简书

apt-get install python3.6
安装:apt-get install python3.6
查看所有连接: ls -l /usr/bin | grep python 
删除现有连接:rm /usr/bin/python 
建立新的连接:ln -s /usr/bin/python3.6 /usr/bin/python 

3:安装pip

apt-get install python3-pip
建立连接:ln -s /usr/bin/pip3 /usr/bin/pip 

******************************将容器固化成镜像然后部署到另一个服务器中************

将容器(CONTAINER)提交(固化)为镜像(IMAGE)

                        docker commit [CONTAINER ID] [IMAGE_NAME]:[TAG]

4:docker镜像制作、压缩及镜像加载

docker镜像制作、压缩及镜像加载_圣骑士控魔之手的技术博客_51CTO博客_docker镜像制作教程

***************************************************************************************************

5:docker 常用

查看已创建的容器命令  

         docker ps -a

进入容器命令

         docker attach 容器名称/或容器id //通过docker ps -a 得到带对应容器的id号

拷贝文件进入docker容器命令           

docker cp 文件本地路径 容器长ID:容器路径 
 (注意容器id后面是,么有空格带, 以下为将home路径下的aa.txt拷贝到容器id为49afc3a516e8的容器,下的new1目录下,为例):     

sudo docker cp home/aa.txt 49afc3a516e8:new1/aa.txt

保存新带镜像命令

docker commit 49afc3a516e8 t3
其中:49afc3a516e8  为对应带容器名称
	t3 为新带镜像的名称

镜像打包命令

save时要在宿主机上进行,不能ssh进行,否则回丢失系统信息。

docker save 镜像名 -o 保存的tar文件名称.tar
例如:
docker save hello -o hello.tar

加载打包的镜像文件命令

docker load < hello.tar
或者
docker load --input hello.tar

解决docker加载新的镜像后repository和tag名称都为none

               可以使用命令:docker tag [image id] [name]:[版本]

                例如:docker tag f2a91732366c ubuntu:14.04

查看GPU驱动是否正常

sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

接下来是通过镜像建立容器,采用如下命令

sudo docker run -it --name test --gpus all -p 1234:22 nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04

-it        以交互模型运行容器,也就是运行容器后不退出
--name test        将容器命名为test,否则会随机命名
--gpus all            允许使用所有的gpu,这个非常重要,没有这个参数gpu无法正常使用
-p 1234:22        将宿主机的1234端口映射到容器的22端口,为了ssh链接做准备
nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04        镜像名:版本号
 

Docker Desktop 中使用GPU_chenxizhan1995的博客-CSDN博客_docker gpu透传

6: docker 自启动脚本

方法1    6.1  编写dockfiler      docker容器启动自动启动shell脚本 - 简书

方法2     6.2 利用启动shell进行

1: 写好脚本start.sh
2:   chmod +x start.sh
3:将容器固化镜像,然后利用如下命令建立容器
4:sudo docker run -it --name detect114 --gpus all -p 1234:22 detect:v3 /bin/bash -c 'sh /workspace/start.sh'
可以利用  docker attach  id (这个进入,如果退出则容器停止)

                docker exec -it id /bin/bash(这个退出,容器不退出)

6.3 tail -f /dev/null命令防止container启动后退出

6.3.1  利用tail -f /dev/null命令防止container启动后退出 - cloudolt - 博客园

6.3.2  修改已创建的docker容器的--restart=always参数_极客on之路的博客-CSDN博客

7:删除容器

方法一:

#显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID,

sudo docker ps -a|grep Exited|awk '{print $1}'

#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器

sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

方法二: 

#删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

sudo docker rm $(sudo docker ps -a -q)

方法三:

#根据容器的状态,删除Exited状态的容器

sudo docker rm $(sudo docker ps -qf status=exited)

方法四:

#Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。

sudo docker container prune

#删除所有镜像

sudo docker rmi $(docker images -q)

Docker和宿主机之间共享文件

其实只需要一条命令,就能实现Docker和宿主机之间共享文件。 
启动Docker镜像的命令一般如下:

docker run -it microsoft/dotnet:latest /bin/bash
1
其中-it后面的参数就是你docker镜像的名称。 
现在只需要加一个-v参数即可。

docker run -it -v /home/haha/下载:/share microsoft/dotnet:latest /bin/bash
1
上面命令表示: 
把宿主机的/home/haha/下载目录挂载到microsoft/dotnet:latest容器的/share目录下。 
执行完上面命令进入Docker容器后,进入/share文件夹下,ls后就会看到原来宿主机下目录“/home/haha/下载”的文件。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DOCKER UBUNTU 配置 的相关文章

随机推荐

  • 【Spring Boot】Spring Boot框架

    文章目录 Spring Boot 1 概念 特点及其好多 2 springBoot的初体验 2 1 步骤 2 1 1创建项目 2 1 2 加入依赖 2 1 3 启动类 2 1 4 controller类 2 1 5 测试 3 配置文件 3
  • 高标准农田信息化管理平台概要设计

    1 综合信息一张图系统 通过一张图的形式 可视化直观展示地区土地分布 耕地质量 高标准农田建设情况 灌溉情况 设备分布情况及环境监测数据 农业管理者可在一张图上查看农田相关信息 及时了解农田情况 为农田管理者的精准管理和科学决策提供辅助支撑
  • Asp.Net&.Net Core 使用 SonarQube 踩坑记 (使用 MSBuild扫描器篇)

    使用dotnet 需要 搭建 ner core的运行环境 1 首先安装配置java运行环境 且javaJDK 必须是11以上 jdk版本必须大于11 等于11不行 2 java和java JDK后 记得配置java 和jdk建立连接和配置
  • formdata上传文件_关于multipart/formdata上传文件

    最近在做一个文件上传的开放接口 用到Content Type multipart form data这种请求类型 特地做了一些研究和记录 在最初的 http协议中 并没有上传文件方面的功能 RFC1867为 http协议添加了这个能力 常见
  • 深度学习笔试、面试题 二

    1 梯度爆炸问题是指在训练深度神经网络的时候 梯度变得过大而损失函数变为无穷 在RNN中 下面哪种方法可以较好地处理梯度爆炸问题 A 用改良的网络结构比如LSTM和GRUs B 梯度裁剪 C Dropout D 所有方法都不行 正确答案是
  • Linux-写USB键盘驱动(详解)

    1 首先我们通过上节的代码中修改 来打印下键盘驱动的数据到底是怎样的 先来回忆下 我们之前写的鼠标驱动的id table是这样 所以我们要修改id table 使这个驱动为键盘的驱动 如下图所示 然后修改中断函数 通过printk 打印数据
  • 算法与数据结构(七):优先队列

    博主会对算法与数据结构会不断进行更新 敬请期待 如有什么建议 欢迎联系 我们知道队列具有先进先出的特性 栈具有先进后出的特性 那么有没有一种数据结构可以根据自己的需求 以一定的规则从队列中弹出呢 优先队列就是实现这种目标的数据结构 一般情况
  • shell随机读取文件的一行

    bin bash a cat files txt wc l for i 0 i lt 5 i do b RANDOM a b b 1 sed n b p files txt done
  • 微信公众号内嵌H5网页授权步骤

    主要注意点就是回调地址 我是用vue框架开发的 所以单独做了个页面去授权回调 redirectToAuthPage const callbackURL encodeURIComponent https ad jfpays com wcpn
  • Ubuntu 22.04安装Visual Studio Code(VS Code)

    Ubuntu 22 04安装Visual Studio Code 一 下载 打开浏览器 访问VS Code的官方网址 https code visualstudio com 在首页的左侧有两个蓝色的按钮 点击左边的按钮 下载 deb格式的安
  • 全链路压测的“谜”

    前言 对于性能测试来说 全链路压测肯定跑不了的 在昨天上午的 GIAC全球互联网架构大会 上 网易云就进行了全链路压测的议题 对于有性能测试的公司来说 面试往往会被问到什么是全链路压测 如何有效的开展全链路压测等等 我今天也只是高屋建瓴 站
  • unity地形之splatalpha研究 地形贴图导出更换与绘制

    unity中的地图贴图的绘制常常使用的是paint texture里面的 但是这个方式往往费时很多 却只能做出很少的效果 这里要介绍的就是通过外部绘制splatalpha 来替换 达到unity中地形更强的效果 使用软件基本有worldma
  • 【yolo】实现一键yolov5数据处理(下)(划分数据集和验证集+构建yolo数据集结构+生成yaml文件)

    事先准备 所有训练所需的图像存于一个目录 所有训练所需的标签存于一个目录 图像文件与标签文件都统一的格式 图像名与标签名一一对应 两种模式可以选择 将文件按照划分输出直接输出到train val目录 或者 输出train txt val t
  • Python turtle 画圣诞树

    马上就要圣诞街了 作为一名程序猿的我们应该用代码表达一下程序猿的温柔呐 所以 改写了一段Python画圣诞树的代码 给你们的朋友们画一颗代码圣诞树吧 圣诞树一 import turtle as t as就是取个别名 后续调用的t都是turt
  • 配置阿里云yum源并启动nginx服务

    1 查看yum源仓库 ls etc yum repos d 2 查看CentOs Base repo文件 3 配置yum源 https opsx alibaba com mirror 找到这个网站 然后找到centos7 执行下载阿里云yu
  • 剑指Offer 53-Ⅱ.0~n-1中缺失的数字

    LeetCode 剑指Offer 53 o n 1中缺失的数字 一个长度为n 1的递增排序数组中的所有数字都是唯一的 并且每个数字都在范围0 n 1之内 在范围0 n 1内的n个数字中有且只有一个数字不在该数组中 请找出这个数字 示例 1
  • GDB调试子进程

    http blog sina com cn s blog 4e415c0b0100lum0 html 1 set follow fork mode
  • Ajax请求url的中文乱码问题

    Ajax请求路径中如果有中文出现在参数值中时 在IE浏览器中出现过乱码的情况 遇到这种问题那肯定就是编码的问题 这时我们就必须采用编码后再传参了 在后台接收时就必须进行解码操作 在js中进行编码操作有几个常用的方法escape encode
  • OpenHarmony在Amlogic A311D芯片平台的快速开发上手指南

    OpenHarmony是由开放原子开源基金会 OpenAtom Foundation 孵化及运营的开源项目 目标是面向全场景 全连接 全智能时代 搭建一个智能终端设备操作系统的框架和平台 促进万物互联产业的繁荣发展 目前最新发布的版本为Op
  • DOCKER UBUNTU 配置

    TensorRT 8 2 1 8 安装笔记 超全超详细 Docker 快速搭建 TensorRT 环境 知乎 1 DOCKER 深度学习环境基本要素 1 Docker部署深度学习服务器 CUDA cudnn ssh 铜锣烧阿南Anan的博客