查看: 115|回复: 2

Docker容器保存为镜像文件

[复制链接]

6

主题

13

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2022-9-20 09:47:36 | 显示全部楼层 |阅读模式
概述
我们制作好镜像后,运行好了, 譬如是个数据库的镜像我们在上面导入了很多数据库;有时需要将这个已经有数据的“新的镜像”复制到另一台服务器使用。  
能达到以上目的有两种方式,一种是上传“新的镜像”到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库,这会在另一篇文章中介绍。  
如果我们仅仅是要复制到另外少数的服务器,搭建私有仓库显然没有这个必要,而将“新的镜像”保存为文件上传到其他服务器再从文件中载入镜像也是一个不错的选择。  
可以使用Docker commit,  Docker save 和 Docker load 命令来存储和载入镜像。

容器和镜像的区别可以参考:

那么我们可以通过以下几步来实现:

1, 将容器打包成镜像,执行docker commit;
其中 d5944567401a 是 container id;
然后执行docker images就可以看到这个镜像了
[root@iZuf64qzl6gmotpo8tbn47Z data]# docker commit d5944567401a mssql-2019-with-cimb:1.0


2,  将镜像保存为本地文件,可以使用Docker save命令
docker save -o mssql-2019-with-cimb.tar mssql-2019-with-cimb

完成后通过 ls 命令即可看到文件。 文件可以随意拷贝到你需要的地方

3、从文件载入镜像

从文件载入镜像可以使用Docker load命令。
docker load --input mssql-2019-with-cimb.tar



然后通过docker images 就能看到了



4, 启动新镜像测试
docker run --name mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=xxxx' \
     -p 1433:1433  \
     -d mssql-2019-with-cimb
最后你可以测试下连接是否成功!
回复

使用道具 举报

3

主题

7

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2022-9-20 09:48:34 | 显示全部楼层
如果有volume会有啥影响吗?
回复

使用道具 举报

2

主题

5

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-9-20 09:49:27 | 显示全部楼层
补充:如果想直接推去自己hub管理,镜像名改为your-hubname/mssql-2019-with-cimb:1.0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表