深度学习linux服务器中docker的常用指令及部分技巧

深度学习linux服务器中docker的常用指令及部分技巧

  • Docker中的几个核心概念
  • Docker中常用指令
  • 可能遇到的问题:
  • 后台运行深度学习模型小技巧

在日常的深度学习模型训练过程中,我们可能难免要使用到远程高性能的linux服务器,而大部分公用服务器又不能随意修改系统环境参数,这时候懂得使用docker就显得十分重要了.

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

下面的图片显示了 Docker 和传统虚拟化方式的不同之处,docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
深度学习linux服务器中docker的常用指令及部分技巧_第1张图片

Docker中的几个核心概念

1.镜像(image):就和各种操作系统镜像文件类似,是一个只读的模板。
2.仓库(repository):仓库(Repository)是集中存放镜像文件的场所。
3.容器(container):Docker 利用容器(Container)来运行应用。容器是从镜像创建的运行实例。

Docker中常用指令

1.运行docker镜像,启动一个容器:

docker/nvidia-docker run -ti -p 8787:8888 -p 8888:6006 -v /home/wjq:/mnt --rm --privileged=true tensorflow/keras /bin/bash 

(-p为端口映射,-v为目录映射 tensorflow/keras为image_name)

2.不退出容器但需要退出当前shell:

CRTL+P+Q

3.查看正在运行的容器:

docker ps

4.进入正在后台运行的容器:

docker exec -it container_id /bin/bash

5.保存对docker的修改到镜像中

 docker commit container_id image_name

6.保存加载镜像文件

docker save imageID > filename 
docker load < filename

7.重命名镜像

docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

可能遇到的问题:

1.报错:docker: Error response from daemon: create nvidia_driver_387.26: error looking up volume plugin nvidia-docker: plugin “nvidia-docker” not found.

执行 nvidia-docker-plugin &

2.系统编码问题:参考docker中ubuntu镜像可能会遇到的编码问题

后台运行深度学习模型小技巧

后台运行

nohup python3 -u ***.py > out.log 2>&1 &

你可能感兴趣的:(项目实训)