首页 科技正文

「中国商标网官」方网站:【docker linux】linux〖系统‘镜像’转化〗为docker‘镜像’

admin 科技 2020-04-13 39 0

『概』述

使用docker安装linux的同砚都知道,你在docker提供的堆栈安装linux「系统」,你就会体验到最精简的、最纯净的linux「系统」,固然,他会精简到你连ifconfig下令都需要自己设置,“正好对于我”来说,这并不是我想要的。若是我去使用VMware安装linux「系统」,然则我已经使用了docker,就不能使用vmware了,那么你就会问了,docker、vmware岂非就不能同时使用?

那么,我告诉你,是的。

问题就出在这里,网上有大把文章谈及docker与vmware区别,然则很少有文章说明他们在windows上使用的虚拟手艺的区别。

当前 Docker “官方出品的” Windows 客户端, 叫做Docker Desktop for Windows.而其正常运行的条件之{一}是「系统」开启了 Hyper-V “虚拟化”服务. 由上文知 Hyper-V 是 Type-1 的 Hypervisor, 这将使得像 VMware 等作为 Type-2 Hypervisor 的软件无法运行.
此时矛盾已经泛起: 使用 Hyper-V 手艺的 Docker 客户端与其他 Type-2 Hypervisor 不能同时运行, 必须重启并关闭 Hyper-V 才气再次运行其他的 Type-2 Hypervisor 软件.

摘自Windows 下 Docker 与 VMware 共存

@

目录
  • 『概』述
  • 壹:「历程」
    • {一}、打包linux《镜像》
    • 【二】、<从>linux「系统」中导出到物理机(windows)
    • 三、导入到docker中
    • 四、打标签
    • {五}、{运行容器}
  • 贰:docker 相关操作[
    • {一}、docker save
    • 【二】、docker import
    • 三、docker load
    • 四、docker import
  • 作者有话

那么知道缘故原由后,就要着手解决啊,不想使用docker和VMware往返切换,最初的蠢设施就是在另{一}个「系统」上(我装了双「系统」)使用vmware,在windows使用docker,横竖虚拟机也只是在上课的时刻用用,然则,回忆{一}下纰谬啊,这样不就更贫苦了吗。

转头{一}想,“既然”docker可以安装linux「系统」,那么我可不可以使用自己的《镜像》文件给导入进去呢?

我将原来在docker中安装的linux「系统」导出,查看其内部组成,这不就是我们常见的那些linux文件吗。<以是我只需要将原有的>linux「系统」压缩成docker《镜像》文件,然后再导入docker,问题不都解决了吗。

若是,你还没安装docker,见:值得学习的应用容器引擎docker安装

壹:「历程」

{一}、打包linux《镜像》

打包linux「系统」就要做到精简,{一}些临时文件不需要,就不用打包,只需要将我们需要的器械打包就可以。使用以下下令,记得加sudo,将linux所有文件打包成system.tar,保存在tmp目录下,排除掉{一}些不需要的目录,不要将最后面有{一}个点给忘记了。

tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .

【二】、<从>linux「系统」中导出到物理机(windows)

若是你有{一}个小伙伴,大可在他的电脑里的Vmware完成这第{一}、【二】步,然后使用ftp工具导出即可。

打包之后,我将压缩包导出,由于我内里安装了hadoop、hbase、zookeeper、hive等{一}系列器械,他就是现在的2.57GB{巨细}。

请忽略这{一}段:(我是<从>deepin「系统」中将文件导出到windows中的,这里纪录{一}下,利便自己以后使用,windows与linux双「系统」文件「系统」不共享,在windows中无法访问deepin的文件「系统」,然则在deepin中可以读取windows文件,不能写,《那么我在》deepin(linux)中的压缩包怎么弄到windows呢,这时刻神器进场了,使用linux reader就可以实现在windows『中读』写deepin的文件「系统」,这器械很奈斯啊)

三、导入到docker中

在cmd中,导入刚刚压缩好的压缩包,这里你必须到system.tar所在目录,要否则,你直接加上system.tar的绝对路径,否则肯定会报错找不到该文件。

docker import system.tar

导入后使用docker images查看《镜像》,会有{一}个未命名,没有标签的《镜像》,这时刻我们就需要给该《镜像》打上标签,利便日后使用及查看

四、打标签

使用docker tag下令为你的《镜像》打标签,后面接《镜像》id 以及堆栈名:标签。

docker tag [《镜像》id] linux/centos:hadoop


到这{一}步,你已经乐成了{一}大半,这时刻《镜像》已经准备好了,就需要使用《镜像》运行{一}个容器了。

{五}、{运行容器}

使用以下下令运行你自己建立的《镜像》,注重后面的/bin/bash不能少。

docker run -t -i [《镜像》id] /bin/bash

测试 ,嗯,java还在,那么其他的都还在。

那么,到现在大功就搞成了。

贰:docker 相关操作[

{一}、docker save

将《镜像》文件保存为内陆文件。

Usage:  docker save [OPTIONS] IMAGE [IMAGE...]

Save one or more images to a tar archive (streamed to STDOUT by default)

Options:
  -o, --output string   Write to a file, instead of STDOUT

例子:docker save -o mysql.tar mysql:latest

【二】、docker import

将容器导出为内陆文件

Usage:  docker export [OPTIONS] CONTAINER

Export a container's filesystem as a tar archive

Options:
  -o, --output string   Write to a file, instead of STDOUT
  
例子:docker export -o mysql.tar

三、docker load

<从>内陆读取《镜像》文件

Usage:  docker load [OPTIONS]

Load an image from a tar archive or STDIN

Options:
  -i, --input string   Read from tar archive file, instead of STDIN
  -q, --quiet          Suppress the load output

例子: docker load -i mysql.tar

四、docker import

<从>内陆文件建立《镜像》

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

Import the contents from a tarball to create a filesystem image

Options:
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Set commit message for imported image

例子:docker import mysql.tar

建议:{一}样平常save、load组合使用,export、import组合使用。

作者有话

嗯,停止到我发这篇文章之前,我再次向他妥协了,‘缘故原由是由于修改了’docker中我导入的容器的内容时,重启后,他并不会生效,而且没有找到有用的方式解决,若是你有可以解决的方式,迎接留言告诉笔者,笔者将感激涕零,不外这篇博客仍然可以作为我的条记利便以后查看,<最终我使用的方式是在>需要使用虚拟机的时刻关闭Hyper -v。

1,若是用docker,
第{一}步:在控制面板中勾选Hyper -v
第【二】步:在cmd,以管理员身份运行:
bcdedit /set hypervisorlaunchtype auto
(第三步);重启

2,开启虚拟机linux
第{一}步:在控制面板中作废勾选Hyper -v
第【二】步:在cmd中,以管理员身份运行:
bcdedit /set hypervisorlaunchtype off
(第三步);重启

方式引用:docker和虚拟机不兼容问题

,

申博Sunbet

申博Sunbet www.xzsxzxx.cn是Sunbet娱乐的官方网站,是亚洲唯{一}的Sunbet。公司业务主要范围:Sunbet、Sunbet、sunbet娱乐等。

版权声明

本文仅代表作者观点,
不代表本站Allbet的立场。
本文系作者授权发表,未经许可,不得转载。

评论