***TensorRT 8.2.1.8 安装笔记(超全超详细)|Docker 快速搭建 TensorRT 环境 - 知乎
离线版安装docker,然后参考下面,如果有部分插件没有安装,可根据需要下载后,清华源里面能下载,根据需要进行再安装
Windows(10专业版&11)使用docker安装深度学习环境 Pytorch-gpu_win11docker desktop部署深度学习-CSDN博客
红帽安装就参考这个
下载 https://mirrors.aliyun.com/nvidia-cuda/rhel8/x86_64/?spm=a2c6h.25603864.0.0.15703ac1IkwBzp
https://blog.csdn.net/weixin_45592677/article/details/136371491
https://blog.csdn.net/qq_44484541/article/details/130129659
ubuntu安装参考这个
1离线版安装
1 下载
1、下载离线包,网址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
离线安装docker需要下载3个包,containerd.io ,docker-ce-cli,docker-ce
containerd.io_1.2.6-3_amd64.deb
docker-ce_19.03.9_3-0_ubuntu-xenial_amd64.deb
docker-ce-cli_19.03.9_3-0_ubuntu-xenial_amd64.deb
2、下载完毕后拷贝到ubuntu上用 dpkg 命令安装,先安装 containerd.io 跟 docker-ce-cli,最后安装docker-ce,命令sudo dpkg -i xxxx.deb
问题:可能会遇到libtables没有安装,可以在联网机器上利用apt-get download iptables_1.6.1-2ubuntu2.1_amd64.deb 下载然后copy后dpkg 安装3、基本上需要更换docker的存储位置可参考
Docker----如何更改docker镜docke像的存储路径_docker修改镜像存储位置_redrose2100的博客-CSDN博客
4、gpu 安装需要下载四个文件
1、下载5个deb文件
libnvidia-container1
libnvidia-container-tools
nvidia-container-toolkit
nvidia-container-runtime
nvidia-docker2#这个可以不用,新的docker里面已经可以了docker官网下载链接:
http://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu16.04/amd64/我下载的文件:
libnvidia-container-tools_1.7.0-1_amd64.deb nvidia-container-toolkit_1.7.0-1_amd64.deb libnvidia-container1_1.7.0-1_amd64.deb nvidia-container-runtime_3.7.0-1_all.deb nvidia-docker2_2.8.0-1_all.deb
5: 安装完成后记得dameload 和重启dockers既可以,下面是参考的博客挺好的
Ubuntu离线安装nvidia-docker完整过程(最简单的解决方法解决nvidia-docker: command not found)
#!/bin/bash
cd dk_need
dpkg -i multiarch-support_2.27-3ubuntu1.6_amd64.deb
dpkg -i libnfnetlink0_1.0.1-3_amd64.deb
dpkg -i libnetfilter-conntrack3_1.0.6-2_amd64.deb
dpkg -i libxtables12_1.6.1-2ubuntu2.1_amd64.deb
dpkg -i libiptc0_1.6.1-2ubuntu2.1_amd64.deb
dpkg -i libip6tc0_1.6.1-2ubuntu2.1_amd64.deb
dpkg -i libip4tc0_1.6.1-2ubuntu2.1_amd64.deb
dpkg -i iptables_1.6.1-2ubuntu2.1_amd64.deb
cd ../dk
dpkg -i containerd.io_1.4.6-1_amd64.deb
dpkg -i docker-ce-cli_20.10.7_3-0_ubuntu-xenial_amd64.deb
dpkg -i docker-ce_20.10.7_3-0_ubuntu-xenial_amd64.deb
6离线安装boto3
需要下载可以利用
eg: pip download boto3 -d . -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/pip download 包名 -d 要保存的路径 -i https://pypi.tuna.tsinghua.edu.cn/simple
7、离线安装
对于下载的包,可能有很多依赖文件,他们之间有强依赖关系,即必须先安装某一个,再安装另一个,这样会比较麻烦,需要一个一个的安装,因此利用以下方法,可以一键安装:
pip install 要安装的包的离线文件 --no-index --find-links=依赖文件的路径
参考:
pip download的依赖包进行一键安装_pip自动安装依赖-CSDN博客
扩展:::
如果利用apt安装仍然可以用apt-get download 进行
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
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/下载”的文件。
docker 配置局域网
1:docker network create --driver bridge --subnet 192.168.2.0/24 --gateway 192.168.2.1 dockerNet1 #这个是建立docker内的自己网络
2: