docker有两个名词要区分,image(镜像)和container(容器)。
做个简单的比喻:image(镜像)比作药方,container(容器)比作草药。真正能治病的是草药,也就是说能运行使用跑代码的是容器;想配一副一样的草药,只要从别人那里拿到药方就可以了,也就是说互相传递的是镜像;照着药方抓药就是运行某镜像的容器;将草药的配比写进药方的过程就是将容器打包成镜像。
以下是常用命令:
1.创建空白docker常用命令
查看docker版本
sudo docker --version
查看可用docker
sudo docker ps -a
启动容器
sudo docker start [容器 ID]
进入容器两种方法
1.sudo docker attach [容器 ID]
2.sudo docker exec -it [容器 ID] /bin/bash
退出容器
exit
两种进入容器的方法的区别是:attach在退出后会停止容器运行,exec不会(部署好项目以后应该使用exec)
将本地文件复制到docker
sudo docker cp [本地文件路径] [容器 ID]:[容器内路径]
将容器打包成镜像:
docker commit -a "[作者信息]" -m "[说明性文字]" [容器ID] [镜像名称]:[镜像版本]
其中镜像名称不能包含大写字母,如:
docker commit -a "ArcherLee" -m "base on:https://github.com/fudan-zvg/SETR" 50330c5c8a2b setr_archer:initial
导出容器
sudo docker export [容器 ID] > [压缩包名称].tar
导入容器
sudo cat docker/[压缩包名称].tar | docker import - [容器 名称]:[容器 版本号]
删除容器
docker rm -f [容器 ID]
docker内使用GPU:https://blog.youkuaiyun.com/qq_22877119/article/details/106851805
注意:在配置GPU之前建好的容器不能使用GPU(如果发现可用之法望告知)
2.从镜像库中镜像创建docker
拉取镜像:
在
https://hub.docker.com/r/pytorch/pytorch/tags?page=1&ordering=last_updated
找合适的镜像,然后使用相应命令拉取,之后查看所有可用镜像
sudo docker images
运行一个容器,来进入镜像
sudo docker run -t -i [IMAGE NAME]:[version,如果是latest则可以省略] /bin/bash
如:
sudo docker run -t -i pytorch/pytorch:1.0.1-cuda10.0-cudnn7-devel /bin/bash
之后跟自己创建docker的步骤就一样了。
3.docker容器与宿主机传数据
从容器内向外传递数据
docker cp [容器id]:[容器内目录] [宿主机目录]
如:
docker cp 480fba046b12:/workspace /root/Desktop
==================================================
向容器内传递数据
docker cp [宿主机目录] [容器id]:[容器内目录]
如:
docker cp /root/Desktop 480fba046b12:/workspace