2019-11-06 14:53:09 +08:00
|
|
|
|
# 导出和导入容器
|
2014-09-19 21:51:21 +08:00
|
|
|
|
|
2019-11-06 14:53:09 +08:00
|
|
|
|
## 导出容器
|
2017-12-05 09:22:06 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
如果要导出本地某个容器,可以使用 `docker export` 命令。
|
2017-11-13 18:54:38 +08:00
|
|
|
|
```bash
|
2018-01-15 22:00:53 +08:00
|
|
|
|
$ docker container ls -a
|
2014-09-19 21:51:21 +08:00
|
|
|
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
2018-12-19 17:24:52 +08:00
|
|
|
|
7691a814370e ubuntu:18.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test
|
2017-11-13 18:54:38 +08:00
|
|
|
|
$ docker export 7691a814370e > ubuntu.tar
|
2014-09-19 21:51:21 +08:00
|
|
|
|
```
|
2017-12-05 09:22:06 +08:00
|
|
|
|
|
2014-09-19 21:51:21 +08:00
|
|
|
|
这样将导出容器快照到本地文件。
|
|
|
|
|
|
2019-11-06 14:53:09 +08:00
|
|
|
|
## 导入容器快照
|
2017-12-05 09:22:06 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
可以使用 `docker import` 从容器快照文件中再导入为镜像,例如
|
2017-12-05 09:22:06 +08:00
|
|
|
|
|
2017-11-13 18:54:38 +08:00
|
|
|
|
```bash
|
|
|
|
|
$ cat ubuntu.tar | docker import - test/ubuntu:v1.0
|
2017-12-05 11:14:56 +08:00
|
|
|
|
$ docker image ls
|
2014-09-19 21:51:21 +08:00
|
|
|
|
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
|
|
|
|
|
test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB
|
|
|
|
|
```
|
2017-12-05 09:22:06 +08:00
|
|
|
|
|
2014-10-14 13:25:01 +08:00
|
|
|
|
此外,也可以通过指定 URL 或者某个目录来导入,例如
|
2017-12-05 09:22:06 +08:00
|
|
|
|
|
2017-11-13 18:54:38 +08:00
|
|
|
|
```bash
|
2017-10-31 23:24:49 +08:00
|
|
|
|
$ docker import http://example.com/exampleimage.tgz example/imagerepo
|
2014-09-19 21:51:21 +08:00
|
|
|
|
```
|
|
|
|
|
|
2017-10-31 23:24:49 +08:00
|
|
|
|
*注:用户既可以使用 `docker load` 来导入镜像存储文件到本地镜像库,也可以使用 `docker import` 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。*
|