docker从入门到入土

Docker的介绍

  Docker支持在具有多个GPU的服务器上有效管理和分配GPU资源,以便容器化程序可以有效利用这些GPU进行计算密集型任务。虽然Docker管理资源分配和隔离,但它不像虚拟机那样将主机机器的物理内存和磁盘分割成独立的部分。Docker容器共享主机内核,并使用轻量级的机制提供隔离和资源管理。以下是Docker管理计算机资源的特点:

0. 资源隔离

  Docker容器利用Linux内核的命名空间和控制组功能提供进程隔离。每个容器作为一个独立的进程运行,并与同一主机上的其他容器隔离开来。这种隔离确保容器内的进程无法干扰其他容器或主机系统上的进程。

1. 资源限制

  Docker可以在容器上设置资源限制。这些限制可以包括CPU份额、内存使用和磁盘空间。Docker使用控制组(cgroups)来强制执行这些限制,确保容器不会超过分配的资源。

2. 存储

  Docker容器使用主机机器的文件系统进行存储,但是通过Docker卷(Docker Volumes)可以将特定目录或存储卷从主机或其他来源挂载到容器中。这使得容器可以访问和修改主机系统或持久存储中的文件,而无需在容器文件系统内部复制它们。

简单理解:Anaconda用于隔离不同的python环境;docker可以理解成在你的机器里面安装了一个独立的系统,因此它可以隔离不同的CUDA环境,还有着独立的文件系统,防止别人删掉你的实验和环境等。参考

Docker的安装

Docker的使用

0. 启动Docker

systemctl start docker # 启动docker,或者使用 service docker start
systemctl stop docker # 关闭docker
systemctl restart docker # 重启docker
systemctl status docker #  查看docker状态

1. Docker拉取镜像

docker search ImageName # 搜索镜像
docker pull ImageName # 拉取镜像
docker rmi ImageName # 删除镜像
docker rm ContainerName # 删除容器(少个i)

示例

docker pull hangvane/cuda-conda-desktop:ubuntu16.04

Docker Hub里有多种镜像源:Docker Hub主页

2. Docker查看镜像和GPUs

docker images
docker run --gpus all ImageName

3. Docker新建容器

docker run --name ContainerName -it --gpu 'device=0,1' ImageName /bin/bash

参数说明:-it = -i -t

  • -t 表示在新容器内指定一个终端(terminal)
  • -i 表示容器为可交互的(interactive)
  • gpu为容器指定特定的显卡
  • ContainerID指定容器名,ImageName表示镜像名
  • /bash/bin表示在容器内启动bash shell

示例

docker run --name XinxinLi -it --gpu='device=0, 1' dzw001/cuda11.1-cudnn8-python3.6-pytorch1.8.1-ubuntu18.04 /bin/bash

4. Docker进入容器

首先使用docker ps找到Container ID

docker ps

然后执行以下命令

docker attach Container ID

在这里插入图片描述
在这里插入图片描述

5. Docker退出并关闭容器

exit # 或者使用Ctrl + D
docker stop ContainerID

6. Docker查看容器

docker ps # 查看正在运行的容器
docker container ls # 查看正在运行的容器(list)
docker ps -a # 查看所有容器(all)

7. Docker与宿主机的文件互传

docker cp 宿主机路径 容器ID:容器里的路径 # 本地宿主机往docker容器里传文件
docker cp 容器ID:容器里的路径 宿主机路径# 与上面正好相反

示例

docker cp /home/ubuntu/XinxinLi/downloads/sewer-ml.zip 7df165187730:/home/xinxinli/
# 本地物理机往容器ID为7df165187730的目录/home/xinxinli/传递文件sewer-ml.zip

8. 导入/导出镜像

docker export 容器ID>>文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本

附录A. ubuntu容器里换源跳转:

ubuntu20.04 更换源并下载pytorch

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

starleeisamyth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值