docker的一大优势就是可移植性,因此docker容器可以随意的进行导入导出操作。
容器导出
既然是容器,我们希望 Docker 也能够像 VMWare 那样方便的在不同系统之间拷贝,不过 Docker 并不像 VMWare
导出容器那样方便(事实上,VMWare 中不存在容器导出操作,直接拷贝安装目录即可),在 Docker 中,使用 export 命令可以导出容器,具体操作如下:
创建一个容器,进行基本的配置操作
首先创建一个 nginx 容器,然后启动,启动成功后,将本地一个 .html 文件上传到容器中,具体操作步骤如下:
在宿主机上创建一个sp.html文件,内容如下:
然后把这个文件拷贝到容器中的/usr/share/nginx/html目录下:
docker cp ./sp.html nginx:/usr/share/nginx/html
拷贝成功可以访问到该文件:
接下来通过export命令将容器导出:
docker export nginx > ./nginx.tar
//把niginx容器作为名为nginx.tar的形式到处到当前目录下
该命令将容器导入到 docker 目录下。导出成功之后,我们就可以随意传播分享这个导出文件了。
容器导入
拿到这个导出的文件,通过执行如下命令可以导入容器(如果自己重新导入,需要记得将 docker 中和 nginx 相关的容器和镜像删除)。
使用如下命令导入:
cat ngnix.tar | docker import - mynginx:v1
可以在镜像中查看到导入的镜像:
然后就可以根据导入的自定义镜像文件,创建一个容器
docker run -d --name nginx3 -p 8082:80 mynginx:v1 nginx -g 'daemon off;'
容器导入成功,运行成功之后,我们发现自己定制的 sp.html 页面依然存在,说明这是我们自己的那个容器