Docker容器/镜像导入导出


一直在用,以为已经记录过了,翻阅了下才发现漏掉了,以前的乱七八糟,就单独贴出来了,方便查看。MAC的TimeMachine是不会备份Docker的任何东西的除了主程序,或者说你是完整备份完整恢复,否则就会吃亏。

容器保存、导入导出

查看所有容器:
 # docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
46ec74d78d38        my-mono             "/bin/sh -c '/usr/bi…"   30 hours ago        Exited (0) 29 hours ago                       baidu

保存:

# docker commit 46ec74d78d38 my-mono-new
sha256:f9063230dd47056c1ab786534705c1fe5a76015816f254d19a4b9a9017c3dc7f

容器导出:

# docker export 46ec74d78d38 > my-mono.tar

容器导入:

# docker import my-mono.tar

设置容器Tag方便识别

# docker tag 镜像id my-mono:1.0

docker ps -l可以看到新导入的无Tag的容器id,然后使用tag命名即可

镜像导入导出

查看镜像:

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
my-mono-new       latest              f9063230dd47       11 minutes ago     584MB
my-rom                  latest              9bfa6754f990        3 weeks ago         814MB
my-mono               latest              7638058d5f98       3 weeks ago         580MB

保存:f9063是镜像id的前几位(不一定要完整 唯一就行)

#docker save f9063 > my-mono-app.tar

查看(保存在当前路径)

# ls -lh
-rw-r--r--   1 lckiss  staff   568M  3  8 19:14 my-mono-app.tar

导入:

# docker load < my-mono-app.tar

导入后是没有Tag的,命名:

# docker tag 镜像id my-mono:1.0

docker images可以看到新导入的无Tag的镜像id,然后使用tag命名即可

容器导入导出用import、export,import是将当前容器变成一个新的镜像本质已经不是容器,且无历史记录, export 只导出当前的信息

镜像导入导出用load、save,load是复制的过程包括和之前的镜像完全一样,save 保存镜像所有的信息-包含历史

声明:TIL|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA[ZH]协议进行授权

转载:转载请注明原文链接 - Docker容器/镜像导入导出


Life is very interesting. In the end, some of your greatest pains become your greatest strengths.