玩tensorflow所需要的docker知识

本文介绍了如何在不深入了解Docker的情况下,仅为了使用TensorFlow-gpu与Docker交互。核心概念是镜像(image)和容器(container),镜像类似C++的类,容器则是运行实例。文中列举了常用Docker命令,如查看镜像、运行容器、数据共享、使用GPU、命名和删除容器等,旨在帮助用户快速上手在Docker环境中运行TensorFlow。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你之前不了解docker,今后也没啥自发愿望要了解更多,之所以要用docker就是为了要用tensorflow的话,那么看此文就对了。

简单来说,docker里有两个必须清楚的概念,image(镜像)和container(容器)。镜像就像是C++中的类,而容器则类比为对象。一般来说郑重其事保存起来的都是镜像。而每次我们去运行相应的镜像则会产生一个容器。细说一句,这个容器会有一套全新的文件系统,与本机环境基本毫无关系,类似于开了个虚拟机,我们可以专门开启这样一个容器来使用tensorflow-gpu。

下面我将重点“描述”一下大家可能用的到的几条docker命令。

查看所有的docker镜像:

docker image ls

运行一个docker镜像所产生的容器:

docker run -it --rm --mount type=bind,source=/opt/source,target=/opt/target --gpus all --name abc  Repository:Tag bash

这条命令可能基本包含了深度学习训练所能用到的大多数东西。

首先docker run的语法是:docker run + 参数 + 镜像 + 命令。

-i:交互式操作

-t: 终端

--rm:该容器结束后自动删除

--mount:将本机的source目录作为一个数据卷挂载在所创建的docker容器的target目录下,简而言之,实现了两者的数据共享。这个还是挺重要的。

--gpus all:这个肯定都懂

--name:给你的容器取个名字,后面会讲名字的用处

[Respository:Tag]:这两个东西你只要运行一下docker image ls看一下就明白了,简而言之和ID一样可以成为镜像的唯一表示。

bash:这个命令保证了你接下来可以在shell中使用刚创建的docker容器。

将一个运行中的容器保存为镜像:

docker commit Name Repository:Tag
docker commit Name ID

上面两条命令都可以,Name是容器的名字,最后是你给镜像的唯一标识。这点也很重要,谁也不想自己配置完环境的容器就这么直接消失不是。不过据说在run的时候不加--rm容器会被保存下来,这样应该也能之后接着运行,不过具体的话我就没有试过了。

删除仓库里的镜像:

sudo docker image rm xxxxx

有创有删,这条命令比较粗暴易懂。

补充一条,如果容器运行的时候shell崩了,那么该容器有几率没有停止运行,可以使用

docker stop /CONTAINER_NAME

来终止该容器运行,如果在run的时候有指定--rm,那么该容器不会被保存。

再补充一条,查看运行中的docker容器:

docker ps

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值