8

导出Docker镜像或者容器

 2 years ago
source link: https://www.itwork.club/2021/09/28/docker-export-images/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

导出Docker镜像或者容器

Sep 28, 2021Docker2点击

说起 Docker 当然是离不开镜像和容器,有时候我们需要做一些镜像和容器的备份,便于后期恢复使用,也可以提供给其它人使用,那么备份镜像和容器涉及到哪些命令,又是怎么使用的呢?本文介绍一下Docker镜像的导入导出,用于迁移、备份、升级等场景。

EXPORT命令

docker export [options] container

我们输入 docker export --help 来看一下具体用法,如下图:

export.png
docker export -o mysql8.tar mysql8

其中 -o 表示输出到文件,mysql8.tar为目标文件,mysql8是源容器名(name

IMPORT命令

docker import [options] file |URL| - [REPOSITORY[:TAG]]

我们输入 docker import --help 来看一下具体用法,如下图:

import.png
docker import mysql8.tar  mysql:1.0

cat mysql8.tar | docker import - mysql8:1.0

SAVE命令

docker save [options] images [images...]

我们输入 docker save --help 来看一下具体用法,如下图:

save.png
docker save -o mysql.tar mysql:latest

docker save > mysql.tar mysql:latest

使用以上两种方式都可以,其中 -o> 表示输出到文件,mysql.tar 为目标文件,mysql:latest 是源镜像名(name:tag

LOAD命令

docker load [options]

我们输入 docker load --help 来看一下具体用法,如下图:

load.png
docker load -i mysql.tar

docker load < mysql.tar

其中 -i< 表示从文件输入。会成功导入镜像及相关元数据,包括 tag 信息

  1. export 命令导出的tar文件略小于 save 命令导出的

  2. export 命令是从容器(container)中导出 tar 文件,而 save 命令则是从镜像(images )中导出

  3. 基于第二点,export 导出的文件再 import 回去时,无法保留镜像所有历史(即每一层 layer 信息,不熟悉的可以去看 Dockerfile),不能进行回滚操作;而 save 是依据镜像来的,所以导入时可以完整保留下每一层 layer 信息。

可以依据具体使用场景来选择命令

  • 若是只想备份 images,使用 saveload 即可
  • 若是在启动容器后,容器内容有变化,需要备份,则使用 exportimport

转载: https://blog.csdn.net/ncdx111/article/details/79878098


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK