Docker命令-本地镜像管理

Docker images 命令


docker images 命令用于列出本地的 Docker 镜像。

通过 docker images 命令,用户可以查看所有已下载或构建的 Docker 镜像的详细信息,如仓库名称、标签、镜像 ID、创建时间和大小。

语法

docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS 说明:

  • -a, --all: 显示所有镜像(包括中间层镜像)。

  • --digests: 显示镜像的摘要信息。

  • -f, --filter: 过滤输出,基于提供的条件。

  • --format: 使用 Go 模板格式化输出。

  • --no-trunc: 显示完整的镜像 ID。

  • -q, --quiet: 只显示镜像 ID。

列出所有本地镜像:

docker images

列出带有摘要信息的镜像:

docker images --digests

列出所有镜像(包括中间层镜像):

docker images --all

使用过滤条件列出镜像:

docker images --filter "dangling=true"

只显示镜像 ID:

docker images --quiet

使用自定义格式输出:

docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}"

实例

查看本地镜像列表:

1
2
3
4
5
6
7
8
9
10
11
12
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 5 minutes ago 329 MB
runoob/ubuntu v4 1c06aa18edee 2 days ago 142.1 MB
<none> <none> 5c6e1090e771 2 days ago 165.9 MB
httpd latest ed38aaffef30 11 days ago 195.1 MB
alpine latest 4e38e38c8ce0 2 weeks ago 4.799 MB
mongo 3.2 282fd552add6 3 weeks ago 336.1 MB
redis latest 4465e4bcad80 3 weeks ago 185.7 MB
php 5.6-fpm 025041cd3aa5 3 weeks ago 456.3 MB
python 3.5 045767ddf24a 3 weeks ago 684.1 MB
...

列出本地镜像中 REPOSITORY 为 ubuntu的 镜像列表:

1
2
3
4
root@runoob:~# docker images  ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 90d5884b1ee0 9 weeks ago 188 MB
ubuntu 15.10 4e3b13c8a266 3 months ago 136.3 MB

带有摘要信息的输出:

docker images --digests

输出:

1
2
3
4
REPOSITORY          TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
ubuntu latest sha256:8c53f09a9c6f1e85e10a8ffb649dd9de28b9be4994e792bd96fca152527bba03 2d13d07a40a3 2 weeks ago 72.9MB
nginx stable sha256:1c4f40db5d1c8e5e09d28e501ad167d7c2d91b8908f6f1d9c97d1c67c5f9a69b 5a34e9e5d33b 3 weeks ago 133MB
hello-world latest sha256:feda4427b0b5d9d84545dcb38e736a5226e5bb6228c61b0b6b28cb7483a14b68 feb5d9fea6a5 4 weeks ago 13.3kB

使用过滤条件输出:

docker images --filter "dangling=true"

示例输出:

1
2
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none> <none> 7db03500db4f 5 weeks ago 65.3MB

自定义格式输出:

docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}"

输出:

1
2
3
4
REPOSITORY          TAG                 IMAGE ID            SIZE
ubuntu latest 2d13d07a40a3 72.9MB
nginx stable 5a34e9e5d33b 133MB
hello-world latest feb5d9fea6a5 13.3kB

常用场景

  • 管理镜像: 列出本地镜像,了解当前可用的镜像。

  • 过滤镜像: 使用过滤选项查找特定条件的镜像,如悬空镜像(未打标签的镜像)。

  • 镜像 ID 管理: 只获取镜像 ID 以便于后续操作,如删除镜像。

docker images 命令是 Docker 镜像管理中非常基础且重要的命令。通过该命令,用户可以查看本地所有镜像的详细信息,进行镜像的管理和维护。使用各种选项和格式,可以灵活地过滤和格式化输出,以满足不同的管理需求。

Docker rmi 命令


docker rmi 命令用于删除一个或多个 Docker 镜像。

docker rmi 命令对于管理本地存储的镜像非常有用,帮助用户清理不再需要的镜像,释放存储空间。

语法

docker rmi [OPTIONS] IMAGE [IMAGE...]

参数说明:

  • IMAGE: 要删除的镜像的名称或 ID。可以是镜像名、镜像 ID 或镜像摘要。

  • OPTIONS: 可选参数,用来控制命令的行为。

常用选项:

  • -a, --all-tags: 指定仓库名称时,删除该仓库下的所有镜像。

  • -f, --force: 强制删除镜像,即使该镜像被容器使用。

  • --help: 打印帮助信息并退出。

  • --no-prune: 不删除悬空的父镜像。

  • -q, --quiet: 安静模式,不显示删除镜像的详细信息。

删除单个镜像

docker rmi ubuntu:latest

删除名为 ubuntu 的 latest 标签的镜像。

删除多个镜像

docker rmi ubuntu:latest nginx:latest

删除 ubuntu 和 nginx 的 latest 标签的镜像。

删除镜像的多个标签

docker rmi ubuntu:latest ubuntu:18.04

删除 ubuntu 镜像的 latest 和 18.04 标签。

删除所有标签的镜像

docker rmi -a ubuntu

删除 ubuntu 仓库下的所有镜像。

强制删除镜像

docker rmi -f ubuntu:latest

强制删除 ubuntu 的 latest 标签的镜像,即使它正在被使用。

删除悬空的镜像

docker rmi -d

删除所有没有标签的悬空镜像。

安静模式删除所有镜像

docker rmi -q $(docker images -q)

使用安静模式删除所有镜像,不显示删除的镜像信息。

删除指定仓库的所有镜像

docker rmi -a myrepo

删除 myrepo 仓库下的所有镜像。

删除镜像并保留其子镜像

docker rmi --no-prune ubuntu:latest

删除 ubuntu:latest 镜像,但保留其子镜像。

实例

查看现有镜像:

docker images

输出:

1
2
3
4
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
my_image latest d1e1b5a3a8a9 3 days ago 128MB
my_image1 latest c3a4f5a3a8b8 4 days ago 256MB
my_image2 latest a9e1d3a7c9b9 5 days ago 512MB

删除一个镜像:

docker rmi my_image

输出:

1
2
Untagged: my_image:latest
Deleted: sha256:d1e1b5a3a8a9...

删除多个镜像:

docker rmi my_image1 my_image2

输出:

1
2
3
4
Untagged: my_image1:latest
Deleted: sha256:c3a4f5a3a8b8...
Untagged: my_image2:latest
Deleted: sha256:a9e1d3a7c9b9...

常用场景

  • 清理无用镜像: 删除不再需要的镜像,以释放存储空间。

  • 镜像管理: 管理和维护本地镜像库,确保只保留需要的镜像。

  • 强制删除: 在镜像被容器使用时,强制删除它们(谨慎使用)。

注意事项

  • 强制删除镜像(使用 -f 选项)时,可能会导致依赖于该镜像的容器无法运行,因此应谨慎使用。

  • 默认情况下,docker rmi 会删除未使用的父镜像,如果不希望这样做,可以使用 --no-prune 选项。

docker rmi 命令是 Docker 镜像管理中非常重要的工具。通过该命令,用户可以删除不再需要的镜像,释放存储空间,并保持本地镜像库的整洁。使用适当的选项,可以灵活地管理镜像的删除过程。

Docker tag 命令


docker tag 命令用于创建本地镜像的别名(tag),通过为镜像打标签,可以使用更容易记忆的名字或版本号来标识和管理镜像。

语法

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

  • SOURCE_IMAGE[:TAG]: 源镜像名称和标签,标签默认为 latest

  • TARGET_IMAGE[:TAG]: 目标镜像名称和标签,标签默认为 latest

1、为镜像打标签

docker tag myimage:1.0 myrepo/myimage:latest

这会将本地 myimage:1.0 镜像标记为 myrepo/myimage:latest。

2、为镜像打多个标签

1
2
docker tag myimage:1.0 myrepo/myimage:stable
docker tag myimage:1.0 myrepo/myimage:v1.0

这会将 myimage:1.0 分别标记为 myrepo/myimage:stable 和 myrepo/myimage:v1.0。

3、为镜像打标签以推送到 Docker Hub

1
2
docker tag myimage:1.0 myusername/myimage:1.0
docker push myusername/myimage:1.0

这会将 myimage:1.0 镜像标记为 myusername/myimage:1.0 并推送到 Docker Hub。


实例

为镜像打标签

1、列出本地镜像

docker images

1
2
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
myimage 1.0 123456789abc 2 days ago 500MB

2、为镜像打标签

docker tag myimage:1.0 myrepo/myimage:latest

3、验证标签

docker images

输出示例:

1
2
3
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
myimage 1.0 123456789abc 2 days ago 500MB
myrepo/myimage latest 123456789abc 2 days ago 500MB

注意事项

  • 标签只是镜像的别名,不会创建新的镜像层,因此不会占用额外的存储空间。

  • 标签应该简洁且具有描述性,以便于识别和管理镜像版本。

  • 在使用标签时,确保命名符合注册表的命名规范。

docker tag 命令是管理 Docker 镜像的重要工具,通过为镜像打标签,可以方便地标识、管理和发布不同版本的镜像。这个命令适用于各种场景,包括版本管理、镜像发布和镜像复制。在使用时,确保标签命名规范和描述性,以提高镜像管理的效率和可维护性。

Docker build 命令


docker build 命令用于从 Dockerfile 构建 Docker 镜像。

docker build 命令通过读取 Dockerfile 中定义的指令,逐步构建镜像,并将最终结果保存到本地镜像库中。

语法

docker build [OPTIONS] PATH | URL | -

  • PATH: 包含 Dockerfile 的目录路径或 .(当前目录)。

  • URL: 指向包含 Dockerfile 的远程存储库地址(如 Git 仓库)。

  • -: 从标准输入读取 Dockerfile。

常用选项:

  • -t, --tag: 为构建的镜像指定名称和标签。

  • -f, --file: 指定 Dockerfile 的路径(默认是 PATH 下的 Dockerfile)。

  • --build-arg: 设置构建参数。

  • --no-cache: 不使用缓存层构建镜像。

  • --rm: 构建成功后删除中间容器(默认开启)。

  • --force-rm: 无论构建成功与否,一律删除中间容器。

  • --pull: 始终尝试从注册表拉取最新的基础镜像。

更多选项说明:

  • --build-arg=[]: 设置构建镜像时的变量。

  • --cpu-shares: 设置 CPU 使用权重。

  • --cpu-period: 限制 CPU CFS 周期。

  • --cpu-quota: 限制 CPU CFS 配额。

  • --cpuset-cpus: 指定可使用的 CPU ID。

  • --cpuset-mems: 指定可使用的内存节点 ID。

  • --disable-content-trust: 忽略内容信任验证(默认启用)。

  • -f: 指定 Dockerfile 的路径。

  • --force-rm: 强制在构建过程中删除中间容器。

  • --isolation: 使用指定的容器隔离技术。

  • --label=[]: 设置镜像的元数据。

  • -m: 设置内存的最大值。

  • --memory-swap: 设置交换空间的最大值(内存 + 交换空间),-1 表示不限制交换空间。

  • --no-cache: 构建镜像时不使用缓存。

  • --pull: 尝试拉取基础镜像的最新版本。

  • --quiet, -q: 安静模式,构建成功后只输出镜像 ID。

  • --rm: 构建成功后删除中间容器(默认启用)。

  • --shm-size: 设置 /dev/shm 的大小,默认值为 64M。

  • --ulimit: 设置 Ulimit 配置。

  • --squash: 将 Dockerfile 中所有步骤压缩为一层。

  • --tag, -t: 为镜像指定名称和标签,格式为 name:tagname;可以在一次构建中为一个镜像设置多个标签。

  • --network: 在构建期间设置 RUN 指令的网络模式,默认值为 default

1、构建镜像

docker build -t myimage:latest .

这会从当前目录读取 Dockerfile 并构建一个名为 myimage:latest 的镜像。

2、指定 Dockerfile 路径

docker build -f /path/to/Dockerfile -t myimage:latest .

这会从 /path/to/ 目录读取 Dockerfile 并构建一个名为 myimage:latest 的镜像。

3、设置构建参数

docker build --build-arg HTTP_PROXY=[http://proxy.example.com](http://proxy.example.com) -t myimage:latest .

这会在构建过程中使用 HTTP_PROXY 环境变量。

4、不使用缓存层构建镜像

docker build --no-cache -t myimage:latest .

这会在构建镜像时忽略所有缓存层,确保每一步都重新执行。

实例 - 使用 Dockerfile 构建镜像

1、创建 Dockerfile,内容如下:

1
2
3
4
5
6
# Dockerfile 示例
FROM ubuntu:20.04
LABEL maintainer="yourname@example.com"
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/index.html
CMD ["nginx", "-g", "daemon off;"]

2、构建镜像

docker build -t mynginx:latest .

输出示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sending build context to Docker daemon  3.072kB
Step 1/5 : FROM ubuntu:20.04
20.04: Pulling from library/ubuntu
...
Step 2/5 : LABEL maintainer="yourname@example.com"
...
Step 3/5 : RUN apt-get update && apt-get install -y nginx
...
Step 4/5 : COPY index.html /var/www/html/index.html
...
Step 5/5 : CMD ["nginx", "-g", "daemon off;"]
...
Successfully built 123456789abc
Successfully tagged mynginx:latest

3、验证镜像

docker images

输出示例:

注意事项

1
2
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mynginx latest 123456789abc 10 minutes ago 200MB
  • 确保 Dockerfile 语法正确,并按照顺序执行每一步。

  • 使用 .dockerignore 文件排除不需要的文件和目录,以减少构建上下文的大小。

  • 在生产环境中,尽量使用精简的基础镜像以减小镜像体积和提高安全性。

  • 避免在 Dockerfile 中暴露敏感信息(如密码、密钥)。

docker build 命令是构建 Docker 镜像的核心工具,通过定义清晰的 Dockerfile,可以自动化地构建应用程序的运行环境和依赖。在使用时,确保合理设置选项和优化 Dockerfile,以提高构建效率和镜像质量。

Docker history 命令


docker history 命令用于查看指定镜像的历史层信息,它显示了镜像创建过程中的每一层,包括创建时间、创建者、大小和注释等信息。

语法

docker history [OPTIONS] IMAGE

  • IMAGE: 要查看历史记录的镜像名称或 ID。

OPTIONS 说明:

  • -H, --human: 以人类可读的格式显示镜像大小(默认启用)。

  • --no-trunc: 显示完整的输出,不截断信息。

  • -q, --quiet: 仅显示镜像 ID。

实例

1、查看镜像历史

docker history myimage:latest

输出示例:

1
2
3
4
5
6
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
sha256:123abc456def 2 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
sha256:789ghi012jkl 2 days ago /bin/sh -c #(nop) COPY file:abc123 in /var/… 1.5kB
sha256:345mno678pqr 2 days ago /bin/sh -c apt-get update && apt-get install… 45.3MB
sha256:678stu901vwx 2 days ago /bin/sh -c #(nop) LABEL maintainer=yourname… 0B
sha256:901yza234bcd 2 days ago /bin/sh -c #(nop) FROM ubuntu:20.04 72.9MB

2、显示完整输出

docker history --no-trunc myimage:latest

3、仅显示镜像 ID

docker history -q myimage:latest

输出示例:

1
2
3
4
5
sha256:123abc456def
sha256:789ghi012jkl
sha256:345mno678pqr
sha256:678stu901vwx
sha256:901yza234bcd

操作实例

构建一个简单的镜像

1、创建一个 Dockerfile:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使用 Ubuntu 作为基础镜像
FROM ubuntu:20.04

# 添加维护者信息
LABEL maintainer="yourname@example.com"

# 更新包列表并安装 Nginx
RUN apt-get update && apt-get install -y nginx

# 复制自定义网页到 Nginx 的默认网页目录
COPY index.html /var/www/html/

# 设置启动时的默认命令
CMD ["nginx", "-g", "daemon off;"]

2、构建镜像:

docker build -t mynginx:latest .

3、查看镜像历史

docker history mynginx:latest

输出示例:

1
2
3
4
5
6
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
sha256:123abc456def 1 minute ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
sha256:789ghi012jkl 1 minute ago /bin/sh -c #(nop) COPY file:abc123 in /var/… 1.5kB
sha256:345mno678pqr 1 minute ago /bin/sh -c apt-get update && apt-get install… 45.3MB
sha256:678stu901vwx 1 minute ago /bin/sh -c #(nop) LABEL maintainer=yourname… 0B
sha256:901yza234bcd 1 minute ago /bin/sh -c #(nop) FROM ubuntu:20.04

注意事项

  • 镜像历史信息包括每一层的创建指令和大小,有助于了解镜像的构建过程和内容。

  • 使用 --no-trunc 选项可以查看完整的创建指令,避免信息截断。

  • 在构建复杂镜像时,通过查看历史记录,可以帮助识别和优化 Dockerfile 中的冗余步骤。

docker history 命令是一个强大的工具,可以帮助开发者和运维人员了解镜像的构建历史和每一层的详细信息。通过查看镜像历史,可以更好地调试、优化和审计 Docker 镜像,确保镜像的高效和安全。

Docker save 命令


docker save 命令用于将一个或多个 Docker 镜像保存到一个 tar 归档文件中,以便在其他环境中分发或备份。

语法

docker save [OPTIONS] IMAGE [IMAGE...]

  • IMAGE: 要保存的一个或多个镜像名称或 ID。

OPTIONS 说明:

  • -o, --output: 指定输出文件的路径。

1、保存单个镜像到文件

docker save -o myimage.tar myimage:latest

这将 myimage:latest 镜像保存为 myimage.tar 文件。

2、保存多个镜像到同一个文件

docker save -o multiple_images.tar myimage:latest anotherimage:latest

这将 myimage:latest 和 anotherimage:latest 镜像保存到 multiple_images.tar 文件中。

实例

构建一个示例镜像

1、创建一个 Dockerfile:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使用 Ubuntu 作为基础镜像
FROM ubuntu:20.04

# 添加维护者信息
LABEL maintainer="yourname@example.com"

# 更新包列表并安装 Nginx
RUN apt-get update && apt-get install -y nginx

# 复制自定义网页到 Nginx 的默认网页目录
COPY index.html /var/www/html/

# 设置启动时的默认命令
CMD ["nginx", "-g", "daemon off;"]

构建镜像:

docker build -t mynginx:latest .

2、保存镜像到文件

docker save -o mynginx.tar mynginx:latest

这将 mynginx:latest 镜像保存为 mynginx.tar 文件。

3、验证保存的文件

ls -lh mynginx.tar

输出示例:

-rw-r--r-- 1 user user 200M Jul 24 14:00 mynginx.tar

4、加载保存的镜像

要将保存的镜像加载到另一个 Docker 环境中,可以使用 docker load 命令:

docker load -i mynginx.tar

注意事项

  • 保存镜像时,会包含镜像的所有层,因此生成的 tar 文件可能会很大。

  • 如果保存多个镜像到同一个文件中,使用 docker load 命令时会加载所有包含的镜像。

  • 为了减少文件大小,可以在保存前使用 docker image prune 命令清理未使用的镜像和层。

docker save 命令是一个方便的工具,用于将 Docker 镜像保存为 tar 文件,以便于备份、分发和迁移。通过结合 docker load 命令,可以轻松地在不同环境中恢复和使用保存的镜像。

Docker load 命令


docker load 命令用于从由 docker save 命令生成的 tar 文件中加载 Docker 镜像。它可以将存档中的镜像和所有层加载到 Docker 中,使其可以在新环境中使用。

语法

docker load [OPTIONS]

OPTIONS 说明:

  • -i, --input: 指定输入文件的路径。

  • -q, --quiet: 安静模式,减少输出信息。

1、从文件加载镜像

docker load -i myimage.tar

这将从 myimage.tar 文件中加载镜像。

2、从标准输入加载镜像

cat myimage.tar | docker load

这将通过管道从标准输入加载镜像。

实例

1、构建和保存镜像

首先,构建一个示例镜像并保存,创建 Dockerfile:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使用 Ubuntu 作为基础镜像
FROM ubuntu:20.04

# 添加维护者信息
LABEL maintainer="yourname@example.com"

# 更新包列表并安装 Nginx
RUN apt-get update && apt-get install -y nginx

# 复制自定义网页到 Nginx 的默认网页目录
COPY index.html /var/www/html/

# 设置启动时的默认命令
CMD ["nginx", "-g", "daemon off;"]

构建镜像:

docker build -t mynginx:latest .

保存镜像到文件:

docker save -o mynginx.tar mynginx:latest

2、加载镜像

从文件加载镜像:

docker load -i mynginx.tar

3、验证加载的镜像

docker images

输出示例:

1
2
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mynginx latest 123abc456def 1 minute ago 200MB

注意事项

  • 加载的镜像包括其所有层和元数据,与保存时的状态完全一致。

  • 使用 docker load 时,所有包含在 tar 文件中的镜像都会被加载。

  • 加载过程中可能需要较长时间,具体取决于镜像的大小和系统性能。

docker load 命令是从保存的 tar 文件中恢复 Docker 镜像的便捷方法。通过结合 docker savedocker load,用户可以轻松地在不同环境中备份、分发和迁移 Docker 镜像。

Docker import 命令


docker import 命令用于从一个 tar 文件或 URL 导入容器快照,从而创建一个新的 Docker 镜像。

docker load 不同,docker import 可以从容器快照中创建新的镜像,而不需要保留镜像的历史和元数据。

语法

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

  • file|URL|-: 输入文件的路径、本地文件或 URL,或者使用 - 从标准输入读取。

  • [REPOSITORY[:TAG]]: (可选)为导入的镜像指定仓库和标签。

OPTIONS 说明:

  • -c, --change: 在导入过程中应用 Dockerfile 指令,如 CMDENTRYPOINTENV 等。

  • -m, --message: 为导入的镜像添加注释。

1、从本地 tar 文件导入镜像

docker import mycontainer.tar mynewimage:latest

这将从 mycontainer.tar 文件导入镜像,并命名为 mynewimage:latest。

2、从 URL 导入镜像

docker import [http://example.com/mycontainer.tar](http://example.com/mycontainer.tar) mynewimage:latest

这将从指定的 URL 导入镜像,并命名为 mynewimage:latest。

3、从标准输入导入镜像

cat mycontainer.tar | docker import - mynewimage:latest

这将通过管道从标准输入读取 tar 文件并导入镜像。

4、在导入过程中应用变更

docker import -c "ENV LANG=en_US.UTF-8" -c "CMD /bin/bash" mycontainer.tar mynewimage:latest

这将从 mycontainer.tar 导入镜像,并在过程中设置环境变量 LANG 和命令 CMD。

实例

1、导出容器快照

首先,创建并运行一个容器:

docker run -d --name mycontainer ubuntu:20.04 sleep 3600

导出容器快照:

docker export mycontainer -o mycontainer.tar

2、导入容器快照

从 tar 文件导入镜像:

docker import mycontainer.tar mynewimage:latest

3、验证导入的镜像

docker images

输出示例:

1
2
REPOSITORY     TAG       IMAGE ID            CREATED             SIZE
mynewimage latest 123abc456def 1 minute ago 72.9MB

4、运行导入的镜像

docker run -it mynewimage:latest /bin/bash

注意事项

  • docker import 创建的镜像不会保留原始镜像的历史和元数据。

  • 使用 -c 选项可以在导入过程中应用 Dockerfile 指令,从而自定义新镜像的配置。

  • 导入的 tar 文件必须是使用 docker export 创建的容器快照,或者是兼容的其他格式。

docker import 命令是一种从容器快照创建新镜像的灵活方法,适用于迁移、恢复和自定义 Docker 镜像的场景。通过使用 docker import,用户可以轻松地从容器快照生成新的镜像,并在导入过程中应用额外的配置。