Docker (使用者角度)
docker image 是定义软件环境的说明(一连串的命令行), docker container是将image(软件环境的定义)给实际安装好(执行)。
docker image 可以从docker hub下载(尽量使用官方写好的image,然后自己创建container后,稍加定制(例如:再安装些额外的包、库))
常用命令:
docker ps -a # 显示所有在运行的container
docker image ls # 显示所有可用的image
docker container ls # 显示所有可用的container
docker stop container_id # 停止运行不用的container
docker rm container_id # 删除不用的container
exit # 退出
使用过程:
1. docker image ls # 显示所有可用的image
2. 根据是否使用GPU,假设用户名李明(mli)
docker run -it -v /home/mli/hello_world:/usr/mli/hello_world -w /usr/mli/hello_world --name=mli_hello image_id
或者
nvidia-docker run -it -v /home/mli/hello_world:/usr/mli/hello_world -w /usr/mli/hello_world --name=mli_hello image_id
3. exit # 推出当前container 到此,名字为 mli_hello 的container(实验环境) 已存在,但停止了运行
4. docker start mli_hello # 启动名字为mli_hello的container, 此时,mli_hello作为进程已经运行起来
5. doker exec -it mli_hello bash # 把在后台运行的mli_hello container 运行模式设置成交互式bash 命令行(root)
6. 至此,就可以和在打开了conda虚拟环境中敲命令行一样啦。。。
比如:CUDA_VISIBLE_DEVICES=0 python train.py
7. docker stop container_id/container_name # 使用完container,停止container(广义进程)的运行
8. docker rm container_id/container_name # 不再用该实验环境,删除该container
### 保存修改过的docker container
docker commit 命令 #生成新的image(在服务器本地docker, 未上传到docker hub)
commit 命令应对平时的开发就够了
参考:https://www.runoob.com/docker/docker-commit-command.html
## 移交项目时打包imgae/container
两种方式:
docker save/load
docker export/import
网友评论