DOCKER UBUNTU 配置

***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/Unknown runtime specified)-CSDN博客

Ubuntu离线安装nvidia-docker完整过程(最简单的解决方法解决nvidia-docker: command not found)

Ubuntu 离线安装 docker_ubuntu docker 离线安装-CSDN博客

 10下载地址 Index of /nvidia-docker/libnvidia-container/stable/

#!/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 进行

7nvidia-smi 指令错误,NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver_nvidia-smi has failed because it couldn't communic-CSDN博客

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/下载”的文件。



docker 配置局域网

1:docker network create --driver bridge --subnet 192.168.2.0/24 --gateway 192.168.2.1 dockerNet1  #这个是建立docker内的自己网络

2:

Docker笔记:配置docker网络与不通网络之间的通信及跨主机通信_docker不同网段通信-CSDN博客


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一个开源的容器化平台,可以帮助开发人员将应用程序及其依赖打包成一个独立的容器,实现快速部署和可移植性。通过使用Docker,可以在不同的环境中运行应用程序,而无需担心环境差异和依赖冲突。 在Ubuntu上安装Docker可以按照以下步骤进行操作: 1. 首先,在终端中运行以下命令设置Docker的软件源: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 2. 更新软件包列表: sudo apt-get update 3. 卸载之前安装的旧版本Docker(如果有): sudo apt-get remove docker docker-engine docker.io containerd runc 4. 添加Docker的官方GPG密钥: curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - 5. 安装Docker Engine: sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin 以上是在Ubuntu上安装Docker的基本步骤,你可以根据实际情况进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [UbuntuDocker的安装与使用教程](https://blog.csdn.net/CZD__CZD/article/details/120485685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Docker安装Ubuntu详细过程(个人学习笔记)](https://blog.csdn.net/sjy072411/article/details/125025159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值