简单记录下打包上传的全过程,补充docker知识,利用阿里云进行docker镜像共享开发。
阿里云登录
sudo docker login --username=youxiang@youxiang.com registry.cn-hangzhou.aliyuncs.com
这个登录密码可以在容器镜像服务/实例列表/镜像仓库页面左侧tab下的"访问凭证"修改。注意:不是淘宝/支付宝/阿里云登录账号的密码。
开始使用
我们一般开发时在GPU使用docker镜像命令为
sudo docker run -d --privileged=true --runtime=nvidia --gpus all --net=host -v /dev:/dev -v /path_code:/path_code --name your-container idxxxxxxxx
然后执行
sudo docker restart your-container
sudo docker exec -it your-container bash
删除挂载卷
进入镜像
这个时候执行
sudo docker ps -a |grep your-container
则左上角显示的就是容器id。
宿主机mv备份挂载的文件夹,例如mv /path_code /path_code_bk
在宿主机执行
sudo docker inspect 容器id > test.txt
然后打开test.txt,看到类似于
"Type": "volume",
"Name": "5dee391ef8a4b48822b27ebfde9567ec522c298093203dc6ce18f21a8decbd6b",
"Source": "/var/lib/docker/volumes/5dee391ef8a4b48822b27ebfde9567ec522c298093203dc6ce18f21a8decbd6b/_data",
"Destination": "--net=host",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
然后执行
sudo rm -rf /var/lib/docker/volumes/5dee391ef8a*
即可。
回到镜像就会发现挂载目录已经无文件,但宿主机文件依旧存在。
容器上传阿里云
sudo docker commit -a "kyrie" -m "torch" 容器id torch:v1
sudo docker tag torch:v1 registry.cn-hangzhou.aliyuncs.com/your_repo/your_image:v1
sudo docker push registry.cn-hangzhou.aliyuncs.com/your_repo/your_image:v1
等待上传完毕即可,
使用
sudo docker pull registry.cn-hangzhou.aliyuncs.com/your_repo/your_image:v1
就可以在公网拉下来镜像。