- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章docker images本地迁移的实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
最近在学习docker,经常遇到的一个问题是,在下载docker image的时候,由于众所周知的网络原因导致失败,虽然网上也有很多解决方案,比如使用Docker Hub Mirror 之类的国内镜像服务,不过由于个人原因(侥幸有一台国外的VM),我更倾向于不通过docker registry共享下载的image.
问题很明确:
不通过docker registry,将A机器上的docker image共享给其他机器,即docker镜像本地迁移.
方案也很简单:
使用docker的save 和 load命令, 具体步骤如下 。
1.在A机器上列出所有的docker image,并找到你要保存的image名 。
1
|
sudo
docker images
|
2.在A机器上使用docker save命令,保存image为tar文件 。
1
|
sudo
docker save image_name -o file_path
|
其中,image_name替换为第一步里找到的要保存的image名。file_path是导出的tar文件路径,比如/home/tmp/image1.tar 。
3.将导出的image tar文件传到其他机器,如机器B。可以使用各种方式,比如scp之类的,在这里不详述了.
4.在需要使用image的机器上(如B机器)使用docker load命令加载image tar文件 。
1
|
sudo
docker load -i file_path
|
注:另外,也可以使用docker 的export和import命令实现类似功能,关于export/save, import/load的区别,可以自己上网查,在此不做展开了.
基本区别就是export出来的是容器(无历史和层信息),而save出来的是image(具有完整的历史和层信息,支持层回滚) 。
补充:Docker的镜像的备份与迁移 。
第一步:
使用docker ps -a命令查看所有的容器 。
1
2
3
4
5
|
[root@localhost ~]
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9505a10e6d29 nginx
"nginx -g 'daemon of…"
34 minutes ago Exited (0) 8 minutes ago mynginx
4c89fff9ac8c mysql:5.6
"docker-entrypoint.s…"
11 days ago Exited (0) 11 days ago mymysql
0abefefe2592 centos
"/bin/bash"
2 months ago Exited (255) 12 days ago mycentos
|
第二步:
容器保存为对象,docker commit 容器名 要保存的名字 。
1
2
|
[root@localhost conf]
# docker commit mynginx mynginx_backup
sha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3a
|
第三步:
查看刚才保存的镜像 。
1
2
3
|
[root@localhost conf]
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mynginx_backup latest a6ca067596a2 19 seconds ago 109MB
|
第四步:
镜像备份(保存为tar文件),docker save -o 容器名.tar 要保存的名字 。
1
|
[root@localhost ~]
# docker save -o mynginx.tar mynginx_backup
|
第五步:
查看当前目录 。
1
2
|
[root@localhost ~]
# ls
anaconda-ks.cfg conf data initial-setup-ks.cfg java logs mynginx.
tar
original-ks.cfg
|
第六步:
删除原来的镜像并查看 。
1
2
3
4
5
6
|
[root@localhost ~]
# docker rmi mynginx_backup
Untagged: mynginx_backup:latest
Deleted: sha256:a6ca067596a2c319ddcdc9592afa9a7e9be4c157959c0327214d3e577333ed3a
Deleted: sha256:facd3b28655186bdc7349bc017557ed80f94155831a8a3ed936f498e2f5b6b1c
[root@localhost ~]
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
|
第七步:
镜像恢复,docker load -i 打包好的容器的文件名.tar 。
1
2
3
4
5
6
|
[root@localhost ~]
# docker load -i mynginx.tar
ea4399e4dbe6: Loading layer [==================================================>] 6.656kB
/6
.656kB
Loaded image: mynginx_backup:latest
[root@localhost ~]
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mynginx_backup latest a6ca067596a2 7 minutes ago 109MB
|
第八步:
使用该镜像创建容器 。
1
2
|
[root@localhost ~]
# docker run --name mynginx2 -p 80:80 -d mynginx_backup
a4809747f3c233d5a8f0c35542449adda10c06305f32c32a55e4842630212760
|
第九步:
浏览器输入ip地址,看是否成功 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.
原文链接:https://blog.csdn.net/u012149181/article/details/80332973 。
最后此篇关于docker images本地迁移的实现的文章就讲到这里了,如果你想了解更多关于docker images本地迁移的实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
当我调用 png.Decode(imageFile) 时,它返回类型 image.Image。但我找不到将其转换为 image.NRGBA 或 image.RGBA 的记录方式,我可以在其上调用 At
image/jpeg 和 image/png 包有 Decode 和 Encode 函数,可以读取和写入 jpeg 和 png 图像,但 image/gif 包没有 - 只有 Decode 和 Dec
我正在尝试从一系列任意的非调色板图像创建动画 GIF。为了创建调色板图像,我需要以某种方式想出一个调色板。 // RGBA, etc. images from somewhere else var f
我在今年夏天的空闲时间使用 Go 镜像包进行一些练习。 package main import ( "os" "image" "image/png" "image/co
关闭。这个问题需要debugging details .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 Improve this question 今天
我正在尝试在 TilePane 中列出图像。当我尝试创建图像 new ImageView("address"); 时出现错误,地址如下: "file:D:/Chrysanthemum.jpeg/" 以
我有一个用于为画廊选择图像的表单,我希望允许用户仅选择 jpg、gif 和 png 图像格式。 现在,为了测试,我将图像的扩展名更改为 .bmp,例如“image1.bmp”,当我在输入文件中单击以选
我有创建图像的代码:(m_img 是 javafx.scene.image.Image) Image m_img = new Image("file:" + p_Fil.getAbsoluteFile
假设我有一个这样的 8 位灰度图像: var pixels []byte = ... width := 100 height := 100 如何将其转换为实现 image.Image 的东西? 最佳答
这段代码是我在localhost:8088 URL上的索引/主页的一部分,如果我想将用户发送到url localhost:8088/image/1,我应该写href='image/{{$image->
我正在尝试对图像进行简单的裁剪。这是代码 from PIL.Image import Image def get_image_half(image, half="upper"): if hal
我在这个问题上花了一整天,但在堆栈溢出中没有看到答案! 我试过了但是没用: >> pil_image = Image.frombytes('RGBA', wand_image.size, wa
所以,我是那些以始终使用最新版本的浏览器而自豪的人之一(当然 Internet Explorer 除外 - 我说的不是那个浏览器)。 我遇到了 this awesome CSS3 website详细介
如果 image_tag 无法从 url 加载图像,我想呈现默认图像: 因此,如果 image_tag 无法从 url 加载图像: 然后呈现默认值: 这将生成结果 HTML: 关于image -
我正在创建一个类似横幅的组件,并将图像设置为组件的背景,但我无法让它工作。我尝试了网上发布的不同建议,但没有成功,目前我不确定我的错误是否在 react 代码中,或者是 webpack 没有正确加载文
如何解决 Dart 中的这种歧义错误。 import 'dart:io'; import 'package:flutter/material.dart'; import 'package:camera
Center( child: CachedNetworkImage( imageUrl: "http:/ sosme link he
设置 www.website.com/sds/(index.htm) 以便鼠标悬停在不同位置时显示图像。 出于某种原因,当您将鼠标悬停在蓝色气球上时,图像 2.jpg 和 3.jpg(在蓝色气球上来回
社交网络在共享 URL 时可以很好地从网站中提取标题和描述,但对于图像,仍然需要创建自定义元标记:property="og:image" name="twitter:image" itemprop="
我正在尝试写一个简短的,它将读取一个 PNG 文件,并将一个 channel 与另一个 channel (R,G,B) 交换作为可能的选择。 但是,我无法找到如何从 image.At(x,y) 返回的
我是一名优秀的程序员,十分优秀!