将iso镜像转换为docker镜像
为什么不用官方的镜像?
不是不想使用,而是官方镜像提供的功能实在是太少了,不信的话,你pull一个ubuntu:latest的进行,你看有没有wget、curl、ssh这些功能,就连最简单的ifconfig都没有,可谓是最纯净、最精简的操作系统。但是我们平时工作中往往需要一些镜像能够拥有尽可能多的功能,当然这就可能造成镜像比较臃肿。
本次测试过程使用的ubuntu16.04桌面版。没错,带GUI的桌面版,其实什么版并没有什么区别,转换为docker镜像之后,使用方法没有区别。
前提:iso已经在虚拟机中安装好
操作很简单,就是耗时---就是进入虚拟机中,然后将某些目录的文件打成tar包,有了tar包之后,再使用docker的import命令来创建镜像。
打包操作:
iso镜像1.62G,打出的tar包5.6G,时间稍长,10分钟左右,大概是在虚拟机里面的原因。
需要注意的是,在打包之前,请先确认要将哪些文件进行打包,比如下面这些目录都可以不用打包:
- 某些用户的家目录是否需要打包
- 每个用户的执行的历史命令是否需要清除
- 一些涉及到隐私的文件
- 与系统镜像没有关系的文件,或者说只是系统运行过程中保存的垃圾文件或者缓存等
- 临时文件
建议手动选择要进行打包的目录,比如:bin dev lib64 media opt root snap var boot etc lib mnt sbin srv usr vmlinuz这些目录
如果你拿不准哪些文件目录要打包,那么可以将根目录下所有文件都打包(不推荐)
→ ~ # cd /
→ ~ # tar -cf system.tar bin dev lib64 media opt root snap var boot etc lib mnt sbin srv usr vmlinuz
建议打包时不要加-v选项,因为文件太多了,翻页速度太快,显示出来也看不清。
将打出的包拷贝到一个安装了docker的环境,如果本地有docker的话,就可以不用移动。
导入操作
→ ~ # cat image.tar | docker import - ubuntu:16:04
sha256:e2b87a8f4f31657f9781b6dad1bdf423f3f3e62865995f4720852c81be0c4e96
查看导入的镜像
→ ~ $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 e2b87a8f4f31 29 minutes ago 4.97GB
运行新建的镜像
这里可能会遇到一个问题,就是尝试运行docker镜像的时候,会提示错误docker: Error response from daemon: No command specified.
即使是使用管理员权限来运行也是不行的,
→ ~ $ docker run -t -i ubuntu:16.04
docker: Error response from daemon: No command specified.
See 'docker run --help'.
→ ~ $ sudo docker run -t -i ubuntu:16.04
Password:
docker: Error response from daemon: No command specified.
See 'docker run --help'.
正确方法:
→ ~ $ docker run -t -i ubuntu:16.04
docker: Error response from daemon: No command specified.
See 'docker run --help'.
→ ~ $ docker run -t -i ubuntu:16.04 /bin/bash #正确方法
root@f0389c5d3270:/# wget www.baidu.com
至于docker run -t -i ubuntu:16.04为什么不行,可以参考:使用Dockerfile来构建镜像,因为他没有设定RUN命令的参数,即容器启动时,要运行的命令
推到镜像库
最后,可以将镜像push到自己的镜像库,需要的时候就pull下来运行即可。
将iso镜像转换为docker镜像的更多相关文章
- Mycat 镜像-创建 Docker 镜像
将 Mycat-server 创建到镜像,使其能够进行容器化部署,我们需要创建 Dockerfile 并在文件中安装其依赖项,使用 centos 做为 base 镜像,并安装 jdk 依赖即可,因此创 ...
- 第 3 章 镜像 - 021 - Docker 镜像小结
镜像小结 镜像的常用操作子命令: images 显示镜像列表 history 显示镜像构建历史 commit 从容器创建新镜像 build 从 Dockerfile 构建镜像 ...
- 基于 debian:stretch-slim 系统镜像的 docker 镜像,安装 curl
依次运行如下命令: apt-get update apt-get install curl
- Docker 镜像 && 容器的基本操作
镜像 && 容器 docker 镜像好比操作系统的镜像(iso) docker 容器好比是已安装运行的操作系统 所以说 docker 镜像文件运行起来之后,就是我们所说的 docker ...
- 第四章 使用Docker镜像和仓库
第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...
- [P4基础]p4app的Docker镜像仓使用详解
How to use the p4lang/p4app Docker image 本文参考 孙勇峰博客 和 p4app README 以及 p4app Dockerfile 结合自己的理解做一些记录, ...
- Docker学习笔记之从镜像仓库获得镜像
0x00 概述 之前我们说到了,Docker 与其他虚拟化软件的一处不同就是将镜像管理纳入到了功能之中.实现虚拟化只是程序能够无缝移植的一部分,而有了镜像管理,就真正取代了我们在移植过程中的繁琐操作. ...
- Docker镜像构建(五)
Docker 镜像介绍 Docker镜像构建分为两种,一种是手动构建,另一种是Dockerfile(自动构建) 手动构建docker镜像 案例:我们基于centos镜像进行构建,制作自己的nginx镜 ...
- 04_Docker入门(下)之docker镜像和仓库的使用
docker镜像和仓库 镜像介绍 docker镜像是由文件系统叠加而成的.最低端是一个引导文件系统,即bootfs.当一个容器启动后,它会将被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存以 ...
随机推荐
- 【爬坑】远程连接 MySQL 失败
问题描述 远程连接 MySQL 服务器失败 报以下错误 host 192.168.23.1 is not allowed to connect to mysql server 解决方案 在服务器端打开 ...
- Linux 系统出现电流音解决方案
迫于Windows 系统最近的各种故障,今天脱坑换了openSUSE Linux ,在上网途中播放视频时偶尔会出现电流音,虽然影响不大,但是还是进行了一些排查. 通过观察电流音出现时的系统负载的波段, ...
- LeetCode算法题-Remove Duplicates from Sorted List
这是悦乐书的第160次更新,第162篇原创 01 前情回顾 昨晚的爬楼梯算法题,有位朋友提了个思路,使用动态规划算法.介于篇幅问题,这里不细说动态规划算法,以后会在数据机构和算法的理论知识里细说. 昨 ...
- June 12. 2018 Week 24th. Tuesday
Just be yourself because you are unique and you will shine. 每个人都是独一无二的,做好你自己,你也能够光芒四射. From What a G ...
- 【2018.05.05 C与C++基础】C++中的自动废料收集:概念与问题引入
在阅读C++语言的设计与演化一书时,作者多次提到希望能设计出一个自动废料收集,然而出于种种考虑,始终未将自动废料收集纳入标准讨论中,而是由Coder自己考虑是否在程序中实现废料收集. 当然了,许多Ja ...
- February 17th, 2018 Week 7th Saturday
The happiest part of a man's life is what he passes lying awake in bed in the morning. 人生一大乐事莫过去早上醒来 ...
- ztree插件异步加载 使用RESTEasy报错 Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.
在使用ztree插件实现异步加载时遇到后台RESTEasy接收参数问题,查看后台报错: A servlet request to the URI http://localhost:8080/area/ ...
- 03.Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Spring Boot 中文乱码问题解决方案汇总
使用 Spring Boot 开发,对外开发接口供调用,传入参数中有中文,出现中文乱码,查了好多资料,总结解决方法如下: 第一步,约定传参编码格式 不管是使用httpclient,还是okhttp,都 ...
- https验证证书的三个级别
一.无条件信任证书 1. func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge ...