Win10使用Linux子系统(WSL2)进行深度学习训练_Kmaeii的博客-CSDN博客_wsl2深度学习
一、什么是Docker镜像(image)、容器
Docker镜像文件,也就是image文件,它可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成对应的 Docker 容器。
简单理解就是,将程序打包在image文件(也叫image仓库)里面,运行image文件,生成一个容器生例,其类似于一个隔离箱,不与宿主机环境做交互。只在容器里面跑程序(已将mysql之类的依赖都打包在里面了,不用去配置数据库等环境),安装了Docker的服务器叫做宿主机,在容器内的代码不会受到宿主机环境的影响。
也就是说,别人的程序打包在image里面,自己直接拿过来后不用配置环境,直接生成容器就可以直接在容器里跑。
二、安装
这里要注意,一定要先安装win11,然后再安装显卡驱动...,最后再安装Ubuntu,nvidia-smi才管用呢
docker的安装:WSL 上的 Docker 容器入门 | Microsoft Docs
dockhub的网址:Docker Hub
这里我安装的这个: docker pull pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
从镜像生成容器
docker run --gpus all -it -v local/path:container/path image_name:tag /bin/bash
docker run -it --gpus all pytorch/pytorch:1.9.1-cuda11.1-cudnn8-runtime /bin/bash 红色的是镜像的名字
docker run --gpus all pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
注:
要使用gpu环境,需要加--gpus xx指定使用的具体gpu,all表示使用机器中所有的gpu。
-v 用来将本地的一个地址挂载到container当中,以方便container与本地的交互。
-it 表示以交互式的方法开启一个终端,此时你的命令行为容器内部的命令行,image_name为镜像名;tag为版本名需要指定,如不指定则默认tag=latest
/bin/bash 为在容器内运行的命令
要想列出已经下载下来的镜像,可以使用 docker image ls
命令。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 5f515359c7f8 5 days ago 183 MB
nginx latest 05a60462f8ba 5 days ago 181 MB
mongo 3.2 fe9198c04d62 5 days ago 342 MB
<none> <none> 00285df0df87 5 days ago 342 MB
ubuntu 18.04 329ed837d508 3 days ago 63.3MB
ubuntu bionic 329ed837d508 3 days ago 63.3MB
列表包含了 仓库名
、标签
、镜像 ID
、创建时间
以及 所占用的空间
。
其中仓库名、标签在之前的基础概念章节已经介绍过了。镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个 标签。因此,在上面的例子中,我们可以看到 ubuntu:18.04
和 ubuntu:bionic
拥有相同的 ID,因为它们对应的是同一个镜像。
docker查看全部容器命令
docker ps -a
进入该容器:
docker run -it pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel /bin/bash
关于Ubuntu在windows哪里的问题?
资源管理器的路径里直接输入\\wsl$
进入Ubuntu的目录
Win10使用Linux子系统(WSL2)进行深度学习训练_Kmaeii的博客-CSDN博客_wsl2深度学习
一、什么是Docker镜像(image)、容器
Docker镜像文件,也就是image文件,它可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成对应的 Docker 容器。
简单理解就是,将程序打包在image文件(也叫image仓库)里面,运行image文件,生成一个容器生例,其类似于一个隔离箱,不与宿主机环境做交互。只在容器里面跑程序(已将mysql之类的依赖都打包在里面了,不用去配置数据库等环境),安装了Docker的服务器叫做宿主机,在容器内的代码不会受到宿主机环境的影响。
也就是说,别人的程序打包在image里面,自己直接拿过来后不用配置环境,直接生成容器就可以直接在容器里跑。
二、安装
这里要注意,一定要先安装win11,然后再安装显卡驱动...,最后再安装Ubuntu,nvidia-smi才管用呢
docker的安装:WSL 上的 Docker 容器入门 | Microsoft Docs
dockhub的网址:Docker Hub
这里我安装的这个: docker pull pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
从镜像生成容器
docker run --gpus all -it -v local/path:container/path image_name:tag /bin/bash
docker run -it --gpus all pytorch/pytorch:1.9.1-cuda11.1-cudnn8-runtime /bin/bash 红色的是镜像的名字
docker run --gpus all pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
注:
要使用gpu环境,需要加--gpus xx指定使用的具体gpu,all表示使用机器中所有的gpu。
-v 用来将本地的一个地址挂载到container当中,以方便container与本地的交互。
-it 表示以交互式的方法开启一个终端,此时你的命令行为容器内部的命令行,image_name为镜像名;tag为版本名需要指定,如不指定则默认tag=latest
/bin/bash 为在容器内运行的命令
要想列出已经下载下来的镜像,可以使用 docker image ls
命令。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 5f515359c7f8 5 days ago 183 MB
nginx latest 05a60462f8ba 5 days ago 181 MB
mongo 3.2 fe9198c04d62 5 days ago 342 MB
<none> <none> 00285df0df87 5 days ago 342 MB
ubuntu 18.04 329ed837d508 3 days ago 63.3MB
ubuntu bionic 329ed837d508 3 days ago 63.3MB
列表包含了 仓库名
、标签
、镜像 ID
、创建时间
以及 所占用的空间
。
其中仓库名、标签在之前的基础概念章节已经介绍过了。镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个 标签。因此,在上面的例子中,我们可以看到 ubuntu:18.04
和 ubuntu:bionic
拥有相同的 ID,因为它们对应的是同一个镜像。
docker查看全部容器命令
docker ps -a
进入该容器:
docker run -it pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel /bin/bash
关于Ubuntu在windows哪里的问题?
资源管理器的路径里直接输入\\wsl$
进入Ubuntu的目录