docker anaconda_配环境、应用迁移神器:Docker教程

大家在配置相关环境的时候,经常会有一些问题(系统不兼容, 软件包版本不对,tensorflow、pytorch版本杂乱,配置过程复杂,难于管理)。比如同样地安装tensorflow-gpu或者pytorch, 可以使用anaconda可以有效配置依赖;使用python原版需要自己配置cuda、cudnn等依赖。

但是,使用docker,可以通过一行命令: 

docker pull tensorflow/tensorflow

解决问题。相关依赖都配好。

先说说Docker容器(container)。

容器就一种标准化的软件单元,它将运行某个程序所需要的所有依赖和环境进行了打包,这样可以在另一个操作系统下快速迁移。可以理解为是一种不带GUI的虚拟机,但是又有不同。由于容器共享主操作系统的内核,在速度上相比虚拟机要更快。

镜像就是软件打包之后的独立、可执行的包,通过定制化镜像或在网上拉取官方发布的相关环境镜像,可以快速实例化该镜像为容器。

简单来说,就是通过镜像来实例化一个容器,这个容器是一个集成了操作系统(ubuntu、Centos等)和各种环境依赖(cuda, python packages, anaconda)可执行单元。在本机,可以通过实例化容器,来构建一个具有完整依赖的应用。

具体安装方式可参考官网:https://docs.docker.com/get-docker/

先来说一下docker的相关指令.

镜像相关命令:

查看本地镜像:    docker images

92aa3a84a440d36cfda475fdc253a1fc.png

每个镜像的命名方式为:REPOSITORY:TAG,并且对应唯一IMAGE ID。镜像可以通过 docker pull命令对dockerHub上的开源镜像进行拉取,也可以自己在容器里面配置好相关环境,导出自己的定制镜像。

删除镜像:

docker rmi xxx

保存镜像:

docker save -o xxx xxx;

例子:

将镜像pytorch:1.6.0-cuda10.1-cudnn7-opencv4.4保存为 my_pytorch.tar 

docker save -o my_pytorch.tar pytorch:1.6.0-cuda10.1-cudnn7-opencv4.4

从tar创建镜像:

docker load

例子:从上述归档文件创建镜像:

docker load < my_pytorch.tar

容器相关指令:

查看容器:

docker ps [options] 

可选参数有 -a:显示所有容器,包括未运行的  -f: 根据条件过滤显示内容

例子:查看所有容器

bb3e9c6e1d8429d62dcbbfbd6f98e20e.png

每个容器有对应的CONTAINER_ID和NAMES,可以设置相应的本机端口与容器端口的映射,方便ssh连接远程容器进行调试。

删除容器:

docker rm CONTAINER

创建容器:

docker run [options] IMAGE  

介绍常用可选参数: 

-i -t 以交互模式运行容器,为容器分配一个伪输入终端 

-v 本机目录与容器目录的映射 

-w 指定容器的工作目录 

-p 端口映射

以创建pytorch容器为例:

nvidia-docker run -it —name my_pytorch -v /home/data:/work/data -w /work pytorch/pytorch /bin/bash

注意:需要本机有NVIDIA显卡才能使用镜像中装好的cuda环境.

这样就创建了容器,并且以/bin/bash的方式进入了容器的终端界面。这个时候输入exit可以退出容器终端,回到本机终端

c54405d236defe58c96b31d3684b0285.png

注意:使用run命令创建完容器之后,不能对容器的相关配置进行修改,比如说目录映射,端口映射,shm—size(训练时需要设置为1G以上,不然缓存不够用),所以在run时需要先设置好。并且映射的目录,在容器里和本机修改都会同步到对应目录,很方便。

第一次退出的时候,容器会默认关闭,这个时候需要重新启动容器

docker start torch_16

然后使用

docker exec -it torch_16 /bin/bash

重新进入容器:

8fe99966cd460e09691b242501eac0f0.png

这里的pytorch使用的是官方开源的镜像,可以使用conda list查看已安装的包(只显示了部分)

dae332bcd17ca0a723aa820663bdc6aa.png

可以看到环境都给你配好了,很方便,省去了自己安装东西的麻烦。同时,他又与本机共享网络等,可以随时自己pip install or conda install你的东西.使用命令可以查看容器的系统版本。

023d5e911b33e80cfaa7c411b5dcbe06.png

为了测试pytorch是否可用,可以输入如下代码:

1e174885307e8cdeee27eb0f48368f42.png

完美运行!

836cd7103524dd2b113a7ebcff19596e.png

804b0746b6b56bb67771ff9be742cacc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值