本人想利用mmdetection3d中的代码框架做二次开发,由于配置环境过于复杂,本人直接用的mmdetection3d提供的dockerfile生成镜像作为开发环境。
中间可以自己在镜像(容器)中做了一些修改,想把这个镜像发布出去,让同学也运行代码。为了实现这个功能,大概了解一下docker的commit,save和load。
docker 官方
参考:
docker commit
当我在mmdetection3d的容器上修改后,可以通过 docker commit 的方式将容器生成新的镜像(相当于word的 另存为)。
# 重新生成一个镜像(生成过程要出docker):
docker commit id name
# id:做过更改容器的id
# name:随意命名
# 例如: docker commit f828 tom
# 生成完可以运行 docker images 查看
我们生成了 id=f82,name=tom 的镜像。现在将镜像打包保存。 生成了tar文件,可以发送给别人。
docker save -o 文件名 镜像名
# 例如 docker save -o ~/mydocker.tar tom
# -o是--output的简写。
当别人拿到了我的mydocker.tar文件时候,可以进行解压,在本地生成docker容器运行我的代码。
docker load -i 文件名 镜像名
# 例如 docker load -i mydocker.tar
# -i 是 --input 的简写
# docker images 就可以查看是否成功啦
docker 生成,保存,和加载就这些啦。欢迎留言。