一、tag重命名
docker tag image_id bert_ner:pytorch_cuda_10.0.130
但是会保留原来的镜像,这时可以使用docker rmi删除原来的镜像
二、根据镜像名创建容器
docker run -it -d --name=service -p 8000:8000 image_id
-d:表示后台模式创建一个容器
--name:指定容器名字
-it:交互模式
三、修改容器中的文件
正常情况下进入容器,后vi即可,但是容器内没安装vi的话,并且也无法联网安装vi,则需要将容器内文件拷贝出来,vi之后再拷贝进容器
docker cp service: /code/worker/filename . # service为容器名,后面为需要拷贝出来的文件路径 # 拷贝出来后进行vi # 然后重新拷贝到容器内 docker cp filename service:/code/worker/processor/utils/
四、利用docker创建包含需要python包的python镜像
docker pull python:3.7.4 docker run -it python:3.7.4 /bin/bash pip install pandas docker commit your_container new_images:tags # 创建新镜像
五、如何保存镜像到本地,然后放到其他服务器上
docker images # 先查看自己需要得镜像ID docker save -o bert_ner_pytorch_cuda_10.0.130_image.tar REPOSITORY:TAG# 保存的名字自己定,REPOSITORY:TAG是已经存在的镜像 # 保存到本地后,生成的镜像我们可以满地跑啦,带着她远走高飞 docker load < bert_ner_pytorch_cuda_10.0.130.tar docker images #可以查看自己load上的镜像 # 重命名images docker tag ner/pytorch:cuda_10.0.130 bert_ner_yh:pytorch_cuda_10.0.130
六、docker使用流程
# 有时某个用户无权限使用docker sudo usermod -G docker user_name # 手里有某个镜像:名字为Image_File docker load < Image_File # 查看自己的镜像,然后创建容器,并进入容器环境 docker images docker run -it --name=container_name Image_ID bash # 假如进入容器后对环境不满意,一顿骚操作后可以重新生成新的镜像 docker commit container_name New_Image:Tags docker images # 然后可以保存新的镜像文件 docker save New_Image_ID > Image_File.tar # 删除原来的垃圾容器和镜像 docker rm -f container_name docker rmi -f Image_ID # 已经有了新镜像,我们在某个路径下新建目录,每种模型下面都按data,output,script,service, pre_train_model结构来放置 mkdir -p NLP/Text_Classification/Bert_Base # 如Bert_Base目录下面放置data,output,script,service, pre_train_model框架 # 有了上面的模型目录结构,我们把NLP挂载到启动的容器下,-v参考挂载,-p参数映射端口,并设置好端口映射,我们先进入NLP目录,然后 # --name指定生成的容器名字 docker run -it --name=model_all -v $PWD:/workspace/NLP/ -v /etc/localtime:/etc/localtime -p 7901:8901 Image_ID /bin/bash # 进入容器后,我们就发现:/workspace/NLP/Text_Classification/Bert_Base,创建容器后,我们可以像下面方式再进入容器:model_all docker exec -it model_all bash