“Docker备份容器”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第1行: 第1行:
=== 制作 image ===
+
=== 制作镜像(image) ===
 
<syntaxhighlight lang="shell-session">
 
<syntaxhighlight lang="shell-session">
 
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker commit -p fca2c79917cf mysql:20230206
 
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker commit -p fca2c79917cf mysql:20230206
第9行: 第9行:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
+
commit 之后就和从 registry 里拉下来的镜像是一样的东西了
  
 
=== 为了备份快照我们有两个选择 ===
 
=== 为了备份快照我们有两个选择 ===

2023年2月7日 (二) 05:51的版本

制作镜像(image)

[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker commit -p fca2c79917cf mysql:20230206
sha256:dcb3dad635a41f708ef7c1bce7cddbdbb9bee0db384965e27dc03ac9a0c32301
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker images
REPOSITORY                                                            TAG                  IMAGE ID       CREATED          SIZE
mysql                                                                 20230206             dcb3dad635a4   9 seconds ago    303MB

commit 之后就和从 registry 里拉下来的镜像是一样的东西了

为了备份快照我们有两个选择

login and push

一个是我们可以登录进 Docker registry,并推送该镜像到公共 registry 或私有 registry;

[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker login --username=xxxxxxx registry.cn-hangzhou.aliyuncs.com
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded


[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker images
REPOSITORY                                                   TAG        IMAGE ID       CREATED          SIZE
mediawiki                                                    20230206   40b7a89a5482   29 seconds ago   1.66GB
mysql                                                        20230110   c9e6530d28b4   3 weeks ago      303MB
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker tag 40b7a89a5482 registry.cn-hangzhou.aliyuncs.com/www_jihongchang_top/wiki:mediawiki_20230206
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker push registry.cn-hangzhou.aliyuncs.com/www_jihongchang_top/wiki:mediawiki_20230206
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/www_jihongchang_top/wiki]
04c6a85fc579: Pushing [=========================>                         ]  436.8MB/872.7MB
f5fd5e55e174: Layer already exists 
f889b881cdaa: Layer already exists 
ef7d630f9747: Layer already exists 
1792b352b678: Layer already exists 
243425e22597: Layer already exists 
20de88a1924a: Layer already exists 
32f881145c7d: Layer already exists 
ee090b01bc23: Layer already exists 
6bd0e6fcab85: Layer already exists 
d51785f7f213: Layer already exists 
5a671bfd0b9a: Layer already exists 
7319d475e305: Layer already exists 
781f2b3fb29c: Layer already exists 
17398fc120fa: Layer already exists 
cfa11f06a213: Layer already exists 
8f477d20e632: Layer already exists 
658dc28b7c93: Layer already exists 
89a3f58688e1: Layer already exists 
3af749400b4a: Layer already exists 
e1bbcf243d0e: Layer already exists 
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]#


save and load

另一个是我们可以将Docker镜像打包成tar包备份,以供今后使用。

如果我们不想备份到docker注册中心,而是想要将此镜像保存在本地机器中,以供日后使用,那么我们可以将其作为tar包备份。

要完成该操作,我们需要运行以下 docker save 命令。

[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker save -o ~/mediawiki_backup.tar mediawiki:backup

如果我们将这些Docker镜像作为tar包文件备份到了本地,那么我们只要使用 docker load 命令,后面加上tar包的备份路径,就可以加载该Docker镜像了。

[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker load -i ~/container-backup.tar