docker 镜像导入
| 描述 | 从 tar 归档文件导入内容以创建文件系统镜像 |
|---|---|
| 用法 | docker image import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] |
| 别名 | docker import |
描述
您可以指定 URL 或 - (dash) 以直接从 STDIN 获取数据。URL 可以指向包含文件系统的归档文件(.tar、.tar.gz、.tgz、.bzip、.tar.xz 或 .txz),或指向 Docker 主机上的单个文件。如果您指定的是归档文件,Docker 会将其解压到容器中相对于 /(根目录)的位置。如果您指定的是单个文件,则必须指定主机内的完整路径。要从远程位置导入,请指定以 http:// 或 https:// 协议开头的 URI。
--change 选项将 Dockerfile 指令应用于生成的镜像。支持的 Dockerfile 指令:
CMD|ENTRYPOINT|ENV|EXPOSE|ONBUILD|USER|VOLUME|WORKDIR
选项
| 选项 | 默认 | 描述 |
|---|---|---|
-c, --change | 将 Dockerfile 指令应用于已创建的镜像 | |
-m, --message | 设置导入镜像的提交信息 | |
--platform | API 1.32+ 如果服务器支持多平台,则设置平台 |
示例
从远程位置导入
这将创建一个新的未标记镜像。
$ docker import https://example.com/exampleimage.tgz
从本地文件导入
通过管道和 STDIN 导入到 docker。
$ cat exampleimage.tgz | docker import - exampleimagelocal:new
通过提交信息导入。
$ cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new
从本地归档导入到 docker。
$ docker import /path/to/exampleimage.tgz
从本地目录导入
$ sudo tar -c . | docker import - exampleimagedir
从本地目录导入并使用新配置
$ sudo tar -c . | docker import --change "ENV DEBUG=true" - exampleimagedir
请注意本例中的 sudo – 在使用 tar 进行归档时,您必须保留文件的所有权(尤其是 root 所有权)。如果您在使用 tar 时不是 root 用户(或使用 sudo 命令),则所有权可能无法保留。