“Docker备份容器”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
(未显示同一用户的6个中间版本) | |||
第1行: | 第1行: | ||
− | + | === 制作镜像(image) === | |
− | + | <syntaxhighlight lang="shell-session"> | |
− | + | [root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker commit -p fca2c79917cf mysql:20230206 | |
− | + | sha256:dcb3dad635a41f708ef7c1bce7cddbdbb9bee0db384965e27dc03ac9a0c32301 | |
− | [root@iZ8vbcjkeqbrdmmbt23vboZ | + | [root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker images |
− | sha256: | + | REPOSITORY TAG IMAGE ID CREATED SIZE |
− | [root@iZ8vbcjkeqbrdmmbt23vboZ | + | mysql 20230206 dcb3dad635a4 9 seconds ago 303MB |
− | REPOSITORY | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | </syntaxhighlight> | |
+ | |||
+ | commit 之后就和从 registry 里拉下来的镜像是一样的东西了 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === 为了备份快照我们有两个选择 === | ||
+ | |||
+ | |||
+ | ==== login and push ==== | ||
+ | 一个是我们可以登录进 Docker registry,并推送该镜像到公共 registry 或私有 registry;<syntaxhighlight lang="shell-session"> | ||
+ | [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 ~]# | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | ==== save and load ==== | ||
+ | 另一个是我们可以将Docker镜像打包成tar包备份,以供今后使用。 | ||
+ | |||
+ | 如果我们不想备份到docker注册中心,而是想要将此镜像保存在本地机器中,以供日后使用,那么我们可以将其作为tar包备份。 | ||
+ | |||
+ | 要完成该操作,我们需要运行以下 <code>docker save</code> 命令。<syntaxhighlight lang="shell-session"> | ||
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker save -o ~/mediawiki_backup.tar mediawiki:backup | [root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker save -o ~/mediawiki_backup.tar mediawiki:backup | ||
</syntaxhighlight>如果我们将这些Docker镜像作为tar包文件备份到了本地,那么我们只要使用 docker load 命令,后面加上tar包的备份路径,就可以加载该Docker镜像了。<syntaxhighlight lang="shell-session"> | </syntaxhighlight>如果我们将这些Docker镜像作为tar包文件备份到了本地,那么我们只要使用 docker load 命令,后面加上tar包的备份路径,就可以加载该Docker镜像了。<syntaxhighlight lang="shell-session"> | ||
[root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker load -i ~/container-backup.tar | [root@iZ8vbcjkeqbrdmmbt23vboZ ~]# docker load -i ~/container-backup.tar | ||
</syntaxhighlight> | </syntaxhighlight> |
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