Linux 下的 Docker 安装

admin5个月前笔记87

Docker是一个开源的应用容器引擎。使用 Docker,既可以将 PaddlePaddle 的安装&使用与系统环境隔离,也可以与主机共享 GPU、网络等资源。 以下 Docker 安装与使用流程中,docker 里已经安装好了特定版本的 PaddlePaddle。

环境准备

安装步骤

1. 拉取 PaddlePaddle 镜像

对于国内用户,因为网络问题下载 docker 比较慢时,可使用百度提供的镜像:

  • CPU 版的 PaddlePaddle:

    docker pull registry.baidubce.com/paddlepaddle/paddle:2.5.2
  • CPU 版的 PaddlePaddle,且镜像中预装好了 jupyter:

    docker pull registry.baidubce.com/paddlepaddle/paddle:2.5.2-jupyter
  • GPU 版的 PaddlePaddle:

    nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda10.2-cudnn7.6-trt7.0
    nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda11.2-cudnn8.2-trt8.0
    nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4-trt8.4
    nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda12.0-cudnn8.9-trt8.6

如果您的机器不在中国大陆地区,可以直接从 DockerHub 拉取镜像:

  • CPU 版的 PaddlePaddle:

    docker pull paddlepaddle/paddle:2.5.2
  • CPU 版的 PaddlePaddle,且镜像中预装好了 jupyter:

    docker pull paddlepaddle/paddle:2.5.2-jupyter
  • GPU 版的 PaddlePaddle:

    nvidia-docker pull paddlepaddle/paddle:2.5.2-gpu-cuda10.2-cudnn7.6-trt7.0
    nvidia-docker pull paddlepaddle/paddle:2.5.2-gpu-cuda11.2-cudnn8.2-trt8.0
    nvidia-docker pull paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4-trt8.4
    nvidia-docker pull paddlepaddle/paddle:2.5.2-gpu-cuda12.0-cudnn8.9-trt8.6

您还可以访问DockerHub获取更多镜像。

2. 构建并进入 docker 容器

  • 使用 CPU 版本的 PaddlePaddle:

    docker run --name paddle_docker -it -v $PWD:/paddle registry.baidubce.com/paddlepaddle/paddle:2.5.2 /bin/bash
    • --name paddle_docker:设定 Docker 的名称,paddle_docker 是自己设置的名称;

    • -it:参数说明容器已和本机交互式运行;

    • -v $PWD:/paddle:指定将当前路径(PWD 变量会展开为当前路径的绝对路径)挂载到容器内部的 /paddle 目录;

    • registry.baidubce.com/paddlepaddle/paddle:2.5.2:指定需要使用的 image 名称,您可以通过docker images命令查看;/bin/bash 是在 Docker 中要执行的命令

  • 使用 CPU 版本的 PaddlePaddle,且镜像中预装好了 jupyter:

    mkdir ./jupyter_docker
    chmod 777 ./jupyter_docker
    cd ./jupyter_docker
    docker run -p 80:80 --rm --env USER_PASSWD="password you set" -v $PWD:/home/paddle registry.baidubce.com/paddlepaddle/paddle:2.5.2-jupyter
    • --rm:关闭容器后删除容器;

    • --env USER_PASSWD="password you set":为 jupyter 设置登录密码,password you set 是自己设置的密码;

    • -v $PWD:/home/paddle:指定将当前路径(PWD 变量会展开为当前路径的绝对路径)挂载到容器内部的 /home/paddle 目录;

    • registry.baidubce.com/paddlepaddle/paddle:2.5.2-jupyter:指定需要使用的 image 名称,您可以通过docker images命令查看

  • 使用 GPU 版本的 PaddlePaddle:

    nvidia-docker run --name paddle_docker -it -v $PWD:/paddle registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda10.2-cudnn7.6-trt7.0 /bin/bash
    • --name paddle_docker:设定 Docker 的名称,paddle_docker 是自己设置的名称;

    • -it:参数说明容器已和本机交互式运行;

    • -v $PWD:/paddle:指定将当前路径(PWD 变量会展开为当前路径的绝对路径)挂载到容器内部的 /paddle 目录;

    • registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda10.2-cudnn7.6-trt7.0:指定需要使用的 image 名称,如果您希望使用 CUDA 11.2 或 CUDA 11.7 的镜像,也可以将其替换成registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda11.2-cudnn8.2-trt8.0 或 registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4-trt8.4。您可以通过docker images命令查看镜像。/bin/bash 是在 Docker 中要执行的命令

至此,您已经成功使用 Docker 安装 PaddlePaddle,更多 Docker 使用请参见Docker 官方文档



镜像简介


镜像源镜像说明
registry.baidubce.com/paddlepaddle/paddle:2.5.2安装了 2.5.2 版本 paddle 的 CPU 镜像
registry.baidubce.com/paddlepaddle/paddle:2.5.2-jupyter安装了 2.5.2 版本 paddle 的 CPU 镜像,且镜像中预装好了 jupyter,启动 docker 即运行 jupyter 服务
registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda12.0-cudnn8.9-trt8.6安装了 2.5.2 版本 paddle 的 GPU 镜像,cuda 版本为 12.0,cudnn 版本为 8.9,trt 版本为 8.6
registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4-trt8.4安装了 2.5.2 版本 paddle 的 GPU 镜像,cuda 版本为 11.7,cudnn 版本为 8.4,trt 版本为 8.4
registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda11.2-cudnn8.2-trt8.0安装了 2.5.2 版本 paddle 的 GPU 镜像,cuda 版本为 11.2,cudnn 版本为 8.2,trt 版本为 8.0
registry.baidubce.com/paddlepaddle/paddle:2.5.2-gpu-cuda10.2-cudnn7.6-trt7.0安装了 2.5.2 版本 paddle 的 GPU 镜像,cuda 版本为 10.2,cudnn 版本为 7.6,trt 版本为 7.0


您可以在 DockerHub 中找到 PaddlePaddle 的各个发行的版本的 docker 镜像。

补充说明

  • 当您需要第二次进入 Docker 容器中,使用如下命令:

    启动之前创建的容器

    docker start <Name of container>

    进入启动的容器

    docker attach <Name of container>
  • 如您是 Docker 新手,您可以参考互联网上的资料学习,例如Docker 教程

如何卸载

请您进入 Docker 容器后,执行如下命令

  • CPU 版本的 PaddlePaddle:

    pip uninstall paddlepaddle
  • GPU 版本的 PaddlePaddle:

    pip uninstall paddlepaddle-gpu

或通过docker rm <Name of container>来直接删除 Docker 容器


相关文章

TCP的粘包拆包技术

TCP的粘包拆包技术

平时大家在网络编程过程中可能会遇到这样一种现象:客户端发送了一长串消息,服务端接受的消息揉在一起或者被拆分了,这样就会造成消息难以被正确理解。比如说有一天你特别想喝奶茶,看了一下外卖,「一点点」的奶茶...

ElementUI中的奇技淫巧

ElementUI中的奇技淫巧

在ElementUI的世界中,不仅有基础的组件和功能,还有一些让你眼前一亮、*得不能再*的高级技巧和窍门。本文将揭示这些技巧,让你在前端开发的舞台上独领风骚。无论你是一个勇敢的创新者还是一个喜欢调皮捣...

ClashX配置V2ray教程

ClashX配置V2ray教程

ClashX介绍Clash 是一个使用 Go 语言编写、基于规则的跨平台代理核心程序。Clash目前有Windows、MacOS、Android等多个平台的GUI程序,支持SS/V2ray/...

PHP 驱动 MongoDB 的方法和技巧

创建索引有时会阻塞新的连接然而,如果一个节点是“UP”状态,但是持有写锁,那么验证将没法执行下去,因此该驱动程序将被挂起了。在mongodb 2.6版本前,在建立索引时的通病。所有的在前台或后台创建索...

Vue中组件和插件的区别

Vue中组件和插件的区别

#一、组件是什么回顾以前对组件的定义:组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件组件的优势降低整个系统的耦合度,在保...

Linux查看系统资源占用

Linux查看系统资源占用

在系统维护的过程中,随时可能有需要查看 CPU和内存的使用率,并根据相应信息分析系统状况的需求。本文介绍一下几种常见的Linux系统资源查看命令。1、总体内存占用的查看命令:free图1 free命令...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。