Docker 架构
docker images -a
1 | 安装Docker: |
docker run -it –rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow:1.12.0-gpu-py3 python3 ./selfplay/tf_nn_policy_network_01.py
docker run –runtime=nvidia -it –rm -v $PWD:/home/user/shixinxin tensorflow/tensorflow:1.12.0-gpu-py3
docker run –runtime=nvidia -it –rm -v $PWD:/home/user/shixinxin tensorflow/tensorflow:1.12.0-gpu-py3 | 创建一个镜像(共享文件路径) |
sudo docker ps | 查看dockers |
sudo docker exec -it 88ce65ec31e3 /bin/bash | 进入docker bash |
python3 -u xxx.py | 运行.py |
Python3 | 运行python |
nvidia-smi |
Docker镜像
cuda10.0 | 1.2-cuda10.0-cudnn7-devel 1.1-cuda10.0-cudnn7-devel 1.0-cuda10.0-cudnn7-devel |
|
cuda10.1 | 1.3.0 ~ 1.6.0-cuda10.1-cudnn7-devel | |
cuda10.2 | 1.8.1 ~ 1.9.0-cuda10.2-cudnn7-devel | |
cuda11.0 | 1.7.1-cuda11.0-cudnn8-devel |
Docker测试
1 | g++ -I/usr/local/cuda-11.0/targets/x86_64-linux/include/ gemfield.cpp -o gemfield -L/usr/local/cuda-11.0/targets/x86_64-linux/lib/ -lcudart |
Docker 服务
1 | Stop |
镜像
Pull & Run(创建容器)
1 | 镜像 |
cp镜像(save,load)
1 | save |
run
1 | docker run |
容器
命令(启动,关闭,结束)
1 | 容器查看 |
进入容器
exited 状态的容器,需要先start之后,才能进入
- 启动的容器,会有一个overlay的存储占用/var/lib/docker/overlay2/container_id
1 | docker start [container ID] |
导出容器、导入成镜像
1 | export |
容器–commit->镜像
1 | docker commit <container_id> <image_name> |
docker容器打包成镜像并导出_mob64ca12e9cad4的技术博客_51CTO博客
Docker:通过容器生成镜像的三种方法_docker容器打包成镜像-CSDN博客
RM删除容器
1 | 删除 |
自定义容器
Docker File(## Build With PATH(本地路径))
1 | docker build -t test:v1.0 . |
这个 . 就表示 PATH。Docker-client 会将当前目录下的所有文件打包全部发送给 Docker-engine。Docker build使用
RUN Demo
1 | docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu18.04 nvidia-smi |
Docker中使用GPU原来是需要安装nvidia-docker2的(方法在下面),已经不需要了: 从docker 19.03开始,已经内置支持,不需要单独安装和设置了。
docker-compose
1 | docker-compose up |
docker-compose gpu
1 | version: '3.9' |
docker-compose.yaml文件编写
docker-compose.yaml文件我们注意有version、services、networks三个关键字,version用于指定代码编写使用的版本规则;services用于配置服务;networks用于配置网络。
下面我列出一个测试文
1 | version: "3.8" |
Docker Mirror 镜像
1 | ocr: |
下面是关于容器的GPU依赖配置:
1 | deploy: |
这里的capabilities是必须要指定的,而且count、driver、capabilities这是一组,不能每个加”-“,不然会报错。关于GPU的其他配置可以参考官方文档 https://docs.docker.com/compose/gpu-support/ 。
Docker 切换主Root路径
1 | 1 Stop |
容器瘦身
查看 Docker 镜像的大小
1 | docker images |
查看 Docker 容器的大小
1 | docker container ls --format "{{.ID}} {{.Size}}" |
查看 Docker 系统的总体磁盘使用情况
1 | docker system df |
FIX Issue
V100 515驱动,docker无法运行torch2.2.1-cu121;
解决方案,cu121的torch需要的驱动版本较高,建议升级到530及以上
驱动更新后,docker无法启动nVidia容器
1 | root@ubuntu8:sdgradio# ../docker-compose up -d |
解决方案
1 | apt install nvidia-docker2 |
完美解决