博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两种方式创建你自己的 Docker 基本映像
阅读量:6863 次
发布时间:2019-06-26

本文共 1556 字,大约阅读时间需要 5 分钟。

两种方式创建你自己的 Docker 基本映像

欢迎大家,今天我们学习一下 docker 基本映像以及如何构建我们自己的 docker 基本映像。 是一个开源项目,提供了一个可以打包、装载和运行任何应用的轻量级容器的开放平台。它没有语言支持、框架和打包系统的限制,从小型的家用电脑到高端服务器,在何时何地都可以运行。这使它们可以不依赖于特定软件栈和供应商,像一块块积木一样部署和扩展网络应用、数据库和后端服务。

Docker 映像是不可更改的只读层。Docker 使用 Union File System 在只读文件系统上增加可读写的文件系统,但所有更改都发生在最顶层的可写层,而其下的只读映像上的原始文件仍然不会改变。由于映像不会改变,也就没有状态。基本映像是没有父类的那些映像。Docker 基本映像主要的好处是它允许我们有一个独立运行的 Linux 操作系统。

下面是我们如何可以创建自定义的基本映像的方式。

1. 使用 Tar 创建 Docker 基本映像

我们可以使用 tar 构建我们自己的基本映像,我们从一个运行中的 Linux 发行版开始,将其打包为基本映像。这过程可能会有些不同,它取决于我们打算构建的发行版。在 Debian 发行版中,已经预带了 debootstrap。在开始下面的步骤之前,我们需要安装 debootstrap。debootstrap 用来获取构建基本系统需要的包。这里,我们构建基于 Ubuntu 14.04 "Trusty" 的映像。要完成这些,我们需要在终端或者 shell 中运行以下命令。

 
  1. $ sudo debootstrap trusty trusty > /dev/null
  2. $ sudo tar -C trusty -c . | sudo docker import - trusty

使用debootstrap构建docker基本映像

使用debootstrap构建docker基本映像

上面的命令为当前文件夹创建了一个 tar 文件并输出到标准输出中,"docker import - trusty" 通过管道从标准输入中获取这个 tar 文件并根据它创建一个名为 trusty 的基本映像。然后,如下所示,我们将运行映像内部的一条测试命令。

 
  1. $ docker run trusty cat /etc/lsb-release

 中有一些允许我们快速构建基本映像的事例脚本.

2. 使用Scratch构建基本映像

在 Docker registry 中,有一个被称为 Scratch 的使用空 tar 文件构建的特殊库:

 
  1. $ tar cv --files-from /dev/null | docker import - scratch

使用scratch构建docker基本映像

使用scratch构建docker基本映像

我们可以使用这个映像构建新的小容器:

 
  1. FROM scratch
  2. ADD script.sh /usr/local/bin/run.sh
  3. CMD ["/usr/local/bin/run.sh"]

上面的 Dockerfile 文件来自一个很小的映像。这里,它首先从一个完全空的文件系统开始,然后它复制新建的 /usr/local/bin/run.sh 为 script.sh ,然后运行脚本 /usr/local/bin/run.sh。

结尾

这这个教程中,我们学习了如何构建一个开箱即用的自定义 Docker 基本映像。构建一个 docker 基本映像是一个很简单的任务,因为这里有很多已经可用的包和脚本。如果我们想要在里面安装想要的东西,构建 docker 基本映像非常有用。如果有任何疑问,建议或者反馈,请在下面的评论框中写下来。非常感谢!享受吧

原文发布时间:2015-05-11

本文来自云栖合作伙伴“linux中国”

转载地址:http://cyeyl.baihongyu.com/

你可能感兴趣的文章
读书笔记:《搞定3--平衡工作和生活的艺术》
查看>>
MySQL 查询重复记录
查看>>
6. 简单又复杂的“运算符”,建议你看一哈
查看>>
开源Android或将收费
查看>>
阿里云服务器拼团购,拉上小伙伴立享¥234/年
查看>>
【转】浅谈php://filter的妙用
查看>>
Docker安装Mysql服务
查看>>
阿里云Redis账号
查看>>
跟我学习php文件和目录常用函数-下篇
查看>>
阿里云云盾-风险识别-增强版模式发布
查看>>
赛灵思CEO Victor Peng:中国AI市场创新速度令人振奋,但初创企业应避免扎堆做AI芯片...
查看>>
Spring Security OAuth 2开发者指南译
查看>>
Linking Containers Together
查看>>
Firefox beta 开始原生支持 Windows 10 ARM64
查看>>
区块链技术没那么复杂,别被大佬们忽悠晕了
查看>>
SpringBoot自定义错误页面
查看>>
OneGame V1.0.2 发布,让运营游戏不再是梦想
查看>>
如何使用Lombok来优雅的编码
查看>>
zookeeper安装
查看>>
Java中如何实现序列化,有什么意义?
查看>>